Anstelle der --target
Option oder der --install-options
Option habe ich festgestellt, dass Folgendes gut funktioniert (aus der Diskussion über einen Fehler in Bezug auf genau diese Sache unter https://github.com/pypa/pip/issues/446 ):
PYTHONUSERBASE=/path/to/install/to pip install --user
(Oder legen Sie das PYTHONUSERBASE
Verzeichnis in Ihrer Umgebung fest, bevor Sie den Befehl ausführen. export PYTHONUSERBASE=/path/to/install/to
)
Dies verwendet die sehr nützliche --user
Option , aber sagt es das zu machen bin
, lib
, share
und andere Verzeichnisse werden Sie unter einem benutzerdefinierten Präfix erwarten , anstatt$HOME/.local
.
Dann können Sie diese auf Ihre hinzufügen PATH
, PYTHONPATH
und andere Variablen wie ein normales Installationsverzeichnis.
Beachten Sie, dass Sie möglicherweise auch die Optionen --upgrade
und angeben müssen, --ignore-installed
wenn für Pakete, von denen dies abhängt, neuere Versionen im PYTHONUSERBASE
Verzeichnis installiert werden müssen , um die vom System bereitgestellten Versionen zu überschreiben.
Ein vollständiges Beispiel:
PYTHONUSERBASE=/opt/mysterypackage-1.0/python-deps pip install --user --upgrade numpy scipy
..um die neuesten Versionen zu installieren scipy
und numpy
in ein Verzeichnis zu packen, das Sie dann in Ihr Verzeichnis aufnehmen können PYTHONPATH
(in diesem Beispiel mit bash und für Python 2.6 unter CentOS 6):
export PYTHONPATH=/opt/mysterypackage-1.0/python-deps/lib64/python2.6/site-packages:$PYTHONPATH
export PATH=/opt/mysterypackage-1.0/python-deps/bin:$PATH
Die Verwendung von virtualenv ist immer noch eine bessere und sauberere Lösung!