Bez środowisk wirtualnych
pip <command> --user zmienia zakres bieżącej komendy pip, tak aby działała na lokalnej lokalizacji instalacji lokalnego konta python użytkownika, a nie na lokalizacji instalacji całego systemu, która jest domyślna.
To naprawdę ma znaczenie tylko na komputerze z wieloma użytkownikami. Wszystko, co zostanie zainstalowane w lokalizacji systemu, będzie widoczne dla wszystkich użytkowników, więc instalacja w lokalizacji użytkownika sprawi, że instalacja pakietu będzie oddzielona od innych użytkowników (nie będą go widzieć i będą musieli zainstalować go osobno, aby z niego korzystać). Ponieważ mogą występować konflikty wersji, instalacja pakietu z zależnościami wymaganymi przez inne pakiety może powodować problemy, dlatego najlepiej nie wypychać wszystkich pakietów, których dany użytkownik używa do lokalizacji instalacji systemu.
- Jeśli jest to maszyna dla jednego użytkownika, instalacja na nim jest niewielka lub żadna
--user lokalizacji . Zostanie zainstalowany w innym folderze, który może, ale nie musi, zostać dodany do ścieżki, w zależności od pakietu i sposobu jego użycia (wiele pakietów instaluje narzędzia wiersza polecenia, które muszą znajdować się na ścieżce, aby uruchomić się z powłoki) .
- Jeśli jest to komputer z wieloma użytkownikami,
--userpreferowane jest używanie roota / sudo lub wymaganie instalacji administratora i wpływanie na środowisko Python każdego użytkownika, z wyjątkiem przypadków ogólnych pakietów, które administrator chce domyślnie udostępnić wszystkim użytkownikom.
- Uwaga: W komentarzach w większości instalacji Unix / Linux wskazano, że instalacje systemowe powinny używać ogólnego menedżera pakietów, takiego jak
apt, zamiast pip.
Z wirtualnymi środowiskami
--userOpcja w aktywnym środowisku venv / virtualenv zainstaluje do lokalnej lokalizacji python użytkownik (taki sam jak bez środowisku wirtualnym).
Pakiety są domyślnie instalowane w środowisku wirtualnym, ale jeśli --usergo użyjesz , wymusi to instalację poza środowiskami wirtualnymi, w katalogu skryptów użytkowników Pythona (w systemie Windows jest to obecnie c:\users\<username>\appdata\roaming\python\python37\scriptsdla mnie w Pythonie 3.7).
Jednak nie będzie można uzyskać dostępu do instalacji systemu lub użytkownika z poziomu środowiska wirtualnego (nawet jeśli był używany --userw środowisku wirtualnym).
Jeśli zainstalujesz środowisko wirtualne z --system-site-packagesargumentem, będziesz miał dostęp do folderu skryptów systemowych dla Pythona. Wydaje mi się, że dotyczy to również folderu skryptu python użytkownika, ale nie jestem pewien. Może to jednak mieć niezamierzone konsekwencje i nie jest to zamierzony sposób korzystania ze środowisk wirtualnych.
Lokalizacja systemu Python i folderów instalacji lokalnych użytkowników
Możesz znaleźć lokalizację folderu instalacyjnego użytkownika dla Pythona za pomocą python -m site --user-base. Znajduję sprzeczne informacje w pytaniach i odpowiedziach, dokumentacji i faktycznie używam tego polecenia na komputerze, aby określić, jakie są ustawienia domyślne, ale znajdują się one w katalogu osobistym użytkownika ( ~skrót w * nix i c:\users\<username>zazwyczaj w systemie Windows).
Inne szczegóły
--userOpcja nie jest ważna dla każdego polecenia. Na przykład pip uninstallznajdzie i odinstaluje pakiety, gdziekolwiek zostały zainstalowane (w folderze użytkownika, folderze środowiska wirtualnego itp.), A --useropcja jest nieprawidłowa.
Rzeczy zainstalowane z pip install --user zostaną zainstalowane w lokalizacji lokalnej, która będzie widoczna tylko dla bieżącego konta użytkownika i nie będzie wymagała dostępu do konta root (w * nix) ani dostępu administratora (w systemie Windows).
W --usermodyfikuje opcja wszystkie pip polecenia, które akceptują go zobaczyć / działające na użytkownika zainstalować folderu, więc jeśli używasz pip list --userto tylko pokazać Pakiety zainstalowane pip install --user.
import site; print site.USER_SITEwydrukować lokalizację instalacji. Dla mnie mam/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages.