335 Stimmen

Installieren von Pip-Paketen im Ordner $HOME

Ist das möglich? Bei der Installation von pip installieren Sie die Python-Pakete in meinem $HOME Ordner. (zum Beispiel möchte ich installieren mercurial , mit pip aber innen $HOME anstelle von /usr/local )

Ich bin mit einem Mac-Rechner unterwegs und habe gerade über diese Möglichkeit nachgedacht, anstatt meinen Rechner zu "verschmutzen". /usr/local würde ich meine $HOME stattdessen.

PEP370 geht es genau darum. Ist nur die Erstellung einer ˜/.local und machen eine pip install package ausreichen, damit diese Pakete nur in meinem $HOME-Ordner installiert werden?

477voto

Ned Deily Punkte 81039

Sie können zwar eine virtualenv müssen Sie das nicht. Der Trick besteht darin, den PEP370 --user Argument an die setup.py Drehbuch. Mit der neuesten Version von pip ist eine Möglichkeit, dies zu tun:

pip install --user mercurial

Dies sollte dazu führen, dass die hg Skript wird installiert in $HOME/.local/bin/hg und der Rest des hg-Pakets in $HOME/.local/lib/pythonx.y/site-packages/ .

Beachten Sie, dass das oben Gesagte für Python 2.6 gilt. Es gab eine kleine Kontroverse unter den Python-Kernentwicklern darüber, welches der geeignete Speicherort unter Mac OS X für PEP370-ähnliche user Anlagen. In Python 2.7 und 3.2 wurde der Speicherort auf Mac OS X von $HOME/.local à $HOME/Library/Python . Dies könnte sich in einer zukünftigen Version ändern. Aber im Moment, unter 2.7 (und 3.2, wenn hg auf Python 3 unterstützt wurden), werden die oben genannten Stellen $HOME/Library/Python/x.y/bin/hg y $HOME/Library/Python/x.y/lib/python/site-packages .

22voto

Ross Patterson Punkte 5533

Ich würde virtualenv in Ihrem HOME-Verzeichnis verwenden.

$ sudo easy_install -U virtualenv
$ cd ~
$ virtualenv .
$ bin/pip ...

Sie könnten dann auch Folgendes ändern ~/.(login|profile|bash_profile) , was auch immer für Ihre Shell richtig ist, um ~/bin zu Ihrem PATH hinzuzufügen und dann das pip|python|easy_install würde standardmäßig verwendet werden.

0voto

Timo Punkte 2416

Kurze Antwort auf Ihre beiden Fragen, die Sie aus den anderen Antworten entnommen haben

Eine

ist es möglich, pip-Pakete zu installieren $HOME anstelle von /usr/local/lib/ aber

Zwei

mkdir ˜/.local # then
pip install package 

ist nicht genug.

Sie benötigen

pip install package --user

und die Pakete werden installiert in

/home/user/.local/lib/python3.x/site-packages

Ausnahme, wenn Sie es nicht brauchen --user

  • wenn Sie nicht Root-Benutzer
  • Auf Debian zusammen mit Wsl - Windows Teilsystem Linux keine Kündigung
  • Unter Ubuntu 20.04 Hinweis default to user installation because normal site-packages not writeable - Standardkonfiguration ist /usr/lib nicht beschreibbar für andere Benutzer außer Root

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X