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-packages
argumentu (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 freeze
mojej bieżącej instalacji Pythona z pakietów Arch .Utworzono wirtualne środowisko, venv
$mkvirtualenv --system-site-packages venv
Utworzono sekundę
pip freeze
z 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ć pacman
zainstalowanych 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-packages
argumentu?
UWAGA. To pytanie może pójść w złym kierunku, jeśli źle zrozumiem, jak --system-site-packages
działa argument. W takim przypadku pytanie powinno brzmieć: Dlaczego --system-site-packages
argument nie tworzy duplikatu kopii lustrzanych pakietów mojego systemu Python?
źródło
pip
menedż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.