Ohne virtuelle Umgebungen
pip <command> --user
Ändert den Umfang des aktuellen pip-Befehls so, dass er auf dem lokalen Python-Paketinstallationsspeicherort des aktuellen Benutzerkontos und nicht auf dem standardmäßigen systemweiten Paketinstallationsspeicherort funktioniert.
Dies ist nur auf einem Mehrbenutzer-Computer wirklich wichtig. Alles, was am Systemspeicherort installiert ist, ist für alle Benutzer sichtbar. Wenn Sie also am Benutzerstandort installieren, wird die Paketinstallation von anderen Benutzern getrennt (sie sehen sie nicht und müssten sie separat installieren, um sie zu verwenden). Da es zu Versionskonflikten kommen kann, kann die Installation eines Pakets mit Abhängigkeiten, die von anderen Paketen benötigt werden, zu Problemen führen. Es ist daher am besten, nicht alle von einem bestimmten Benutzer verwendeten Pakete an den Installationsort des Systems zu verschieben.
- Wenn es sich um einen Einzelbenutzercomputer handelt, gibt es kaum oder keinen Unterschied bei der Installation am
--user
Standort. Es wird in einem anderen Ordner installiert, der je nach Paket und Verwendung möglicherweise zum Pfad hinzugefügt werden muss oder nicht (viele Pakete installieren Befehlszeilentools, die sich auf dem Pfad befinden müssen, um von einer Shell ausgeführt zu werden). .
- Wenn es sich um einen Mehrbenutzercomputer handelt,
--user
wird die Verwendung von root / sudo bevorzugt oder es ist eine Administratorinstallation erforderlich, die sich auf die Python-Umgebung jedes Benutzers auswirkt, außer in Fällen allgemeiner Pakete, die der Administrator standardmäßig allen Benutzern zur Verfügung stellen möchte.
- Hinweis: Per Kommentare, auf den meisten Unix / Linux installiert es wurde darauf hingewiesen , dass das System installiert den allgemeinen Paket - Manager verwenden sollte, wie zum Beispiel
apt
, statt pip
.
Mit virtuellen Umgebungen
Die --user
Option in einer aktiven venv / virtualenv-Umgebung wird am Python-Speicherort des lokalen Benutzers installiert (wie ohne virtuelle Umgebung).
Pakete werden standardmäßig in der virtuellen Umgebung installiert. Wenn Sie sie jedoch verwenden --user
, wird die Installation außerhalb der virtuellen Umgebungen im Python-Skriptverzeichnis des Benutzers erzwungen (unter Windows ist dies derzeit c:\users\<username>\appdata\roaming\python\python37\scripts
für mich mit Python 3.7 der Fall).
Sie können jedoch nicht von einer virtuellen Umgebung aus auf ein System oder eine Benutzerinstallation zugreifen (selbst wenn Sie diese --user
in einer virtuellen Umgebung verwendet haben).
Wenn Sie eine virtuelle Umgebung mit dem --system-site-packages
Argument installieren , haben Sie Zugriff auf den Systemskriptordner für Python. Ich glaube, dies beinhaltete auch den Benutzer-Python-Skriptordner, bin mir aber nicht sicher. Dies kann jedoch unbeabsichtigte Folgen haben, und es ist nicht die beabsichtigte Art, virtuelle Umgebungen zu verwenden.
Speicherort des Python-Systems und der Installationsordner für lokale Benutzer
Sie finden den Speicherort des Benutzerinstallationsordners für Python mit python -m site --user-base
. Ich finde widersprüchliche Informationen in den Fragen und Antworten, in der Dokumentation und verwende diesen Befehl tatsächlich auf meinem PC, um die Standardeinstellungen zu ermitteln. Sie befinden sich jedoch unter dem Benutzer-Ausgangsverzeichnis ( ~
Verknüpfung in * nix und c:\users\<username>
normalerweise für Windows).
Andere Details
Die --user
Option ist nicht für jeden Befehl gültig. Beispielsweise pip uninstall
werden Pakete überall dort gefunden und deinstalliert, wo sie installiert wurden (im Benutzerordner, im Ordner für die virtuelle Umgebung usw.), und die --user
Option ist ungültig.
Mit installierte pip install --user
Elemente werden an einem lokalen Speicherort installiert, der nur vom aktuellen Benutzerkonto angezeigt wird, und erfordern keinen Root-Zugriff (unter * nix) oder Administratorzugriff (unter Windows).
Die --user
Option ändert alle pip
Befehle, die sie akzeptieren, um den Benutzerinstallationsordner anzuzeigen / zu bearbeiten. Wenn Sie sie verwenden pip list --user
, werden nur Pakete angezeigt, mit denen sie installiert wurden pip install --user
.
import site; print site.USER_SITE
den Installationsort drucken. Für mich habe ich/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages
.