Anstelle der --targetOption oder der --install-optionsOption 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 PYTHONUSERBASEVerzeichnis in Ihrer Umgebung fest, bevor Sie den Befehl ausführen. export PYTHONUSERBASE=/path/to/install/to)
Dies verwendet die sehr nützliche --userOption , aber sagt es das zu machen bin, lib, shareund andere Verzeichnisse werden Sie unter einem benutzerdefinierten Präfix erwarten , anstatt$HOME/.local .
Dann können Sie diese auf Ihre hinzufügen PATH, PYTHONPATHund andere Variablen wie ein normales Installationsverzeichnis.
Beachten Sie, dass Sie möglicherweise auch die Optionen --upgradeund angeben müssen, --ignore-installedwenn für Pakete, von denen dies abhängt, neuere Versionen im PYTHONUSERBASEVerzeichnis 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 scipyund numpyin 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!