Korzystam z Arch Linux i chcę używać środowisk wirtualnych do instalowania tylko tych kilku pakietów PIP, których używam do konkretnych projektów, ale nadal używam pakietów Arch do Pythona. Jednak gdy tworzę nowy VENV, który używa --system-site-packagesargumentu (w celu uzyskania dostępu do bazowych pakietów Pythona w Arch), nowy VENV nie jest pełnym lustrem środowiska innego niż VENV.
Jak to przetestowałem:
pip freezemojej bieżącej instalacji Pythona z pakietów Arch .Utworzono wirtualne środowisko, venv
$mkvirtualenv --system-site-packages venvUtworzono sekundę
pip freezez wnętrza aktywnego venv
Spodziewałem się, że diff będzie taki sam, ale istnieje wiele różnic.
Wierzę, że wszystkie Python i powiązane pakiety zostały zainstalowanepacman . Jestem przekonany, że wszystkie główne pakiety (iPython, Numpy, Pandas, Jupyter, Matplotlib itp.) Zostały zainstalowane za pomocą menedżera pakietów Arch pacman. Ponieważ nie zainstalowałem wczoraj mojego systemu, z pewnością jest możliwe , że z czasem użyłem PIP dla kilku pakietów, ale przestrzegałem zasady, aby używać pacmanzainstalowanych pakietów, aby skorzystać z naprawy społeczności Arch niezgodności (w przeciwieństwie do niektórych kombinacji pakietów Github, PiP i Arch).
Jak mogę rozwiązać problem różnych pakietów w mojej VENV za pomocą --system-site-packagesargumentu?
UWAGA. To pytanie może pójść w złym kierunku, jeśli źle zrozumiem, jak --system-site-packagesdziała argument. W takim przypadku pytanie powinno brzmieć: Dlaczego --system-site-packagesargument nie tworzy duplikatu kopii lustrzanych pakietów mojego systemu Python?
pipmenedżera pakietów, a nie menedżera dystrybucji. Moim zdaniem sugeruje to po prostu ponowną instalację wymaganych pakietów dla każdego projektu (argument „pamięć jest tania”). Zainteresowanie tym problemem jest zerowe. Przepraszam. Po prostu przez to maczam.