Jak mogę rozwiązać problemy z VENV `--system-site-packages` nie dublujące mojego systemu?


1

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:

  1. pip freezemojej bieżącej instalacji Pythona z pakietów Arch .

  2. Utworzono wirtualne środowisko, venv $mkvirtualenv --system-site-packages venv

  3. Utworzono sekundę pip freezez wnętrza aktywnego venv

  4. Porównaj używając diff

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?


Czy kiedykolwiek to rozgryzłeś? Ten cały system vs python użytkownik rzeczy (i szczerze mówiąc, rubin i węzeł rzecz) zawsze mylić mnie nie do końca ...
rbellamy

Napisałem na forum dyskusyjnym Google dla wirtualnego środowiska envwrapper i Archlinux . Pierwsze zainteresowanie nie było duże, a dla mnie istotą drugiej odpowiedzi było użycie 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.
xtian
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.