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,
--user
preferowane 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
--user
Opcja 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 --user
go 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\scripts
dla 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 --user
w środowisku wirtualnym).
Jeśli zainstalujesz środowisko wirtualne z --system-site-packages
argumentem, 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
--user
Opcja nie jest ważna dla każdego polecenia. Na przykład pip uninstall
znajdzie i odinstaluje pakiety, gdziekolwiek zostały zainstalowane (w folderze użytkownika, folderze środowiska wirtualnego itp.), A --user
opcja 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 --user
modyfikuje 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 --user
to tylko pokazać Pakiety zainstalowane pip install --user
.
import site; print site.USER_SITE
wydrukować lokalizację instalacji. Dla mnie mam/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages
.