Ich habe eine Frage zum Installieren / Aktualisieren von Python-Paketen mit dem Tool pip
.
Ich kann entweder rennen
sudo pip install -U PACKAGENAME
oder
pip install -U PACKAGENAME --user
Was ist der Unterschied zwischen diesen beiden Befehlen und welchen sollte ich bevorzugen ...
- auf meiner eigenen Maschine?
- im Installationsskript eines Python-Programms, das ich veröffentliche?
pip
über anzurufensudo
: entwedersudo -H pip install...
odersudo -H python -m pip install...
(Hinweis, derpip
gerne mit angerufen wirdsudo -H
). Daspip
mitgeliefertepython
ist ab Python 2.7.9 und höher (in der Python2-Serie) und Python 3.4 und höher (für Python 3) verfügbar.sudo pip
auch etwas mit Systemabhängigkeiten geschieht. zB ruft einsudo pip
unter Ubuntu tatsächlichapt-get
auf, um etwas zu installieren (oder zu entfernen!)? Wenn ich zum Beispielipython
überpip
(/usr/local
standardmäßig) installiere, aber ein älteres bereits überapt-get
(/usr/bin
) installiert wurde , funktioniert mein System dann nur dann richtig, wenn/usr/local/bin
es sich in meinem Pfad befindet/usr/bin
? Diese Probleme scheinen zur Laufzeit behoben zu sein. Oder machtsudo pip
etwas zur Installationszeit etwas Besonderes?pip
das nichts damit zu tun hatapt
. Das eine benutzt das andere nicht und umgekehrt.Antworten:
Für mich ist der einzige Unterschied der Schemapfad.
Mit sudo wird Ihr Paket installiert in:
Mit werden
--user
sie in Ihrem$HOME
Verzeichnis installiert in:Für Ihr eigenes System würde ich sagen, dass es nicht wirklich wichtig ist. Verwenden
--user
Sie diese Option, wenn Sie kein Sudoer-Mitglied sind.Vermeiden Sie Code, den Sie veröffentlichen
--user
.quelle
--user
bitte erklären, warum Sie dies vermeiden sollten? Ich habe nur über das Vermeidensudo
noch gelesen ...