Invece --targetdell'opzione o --install-optionsdell'opzione, ho scoperto che quanto segue funziona bene (dalla discussione su un bug relativo a questa cosa su https://github.com/pypa/pip/issues/446 ):
PYTHONUSERBASE=/path/to/install/to pip install --user
(Oppure imposta la PYTHONUSERBASEdirectory nel tuo ambiente prima di eseguire il comando, utilizzando export PYTHONUSERBASE=/path/to/install/to)
Questo utilizza il molto utile --useropzione, ma dice che per fare i bin, lib, sharee altre directory che ci si aspetta in un prefisso personalizzato piuttosto che $HOME/.local.
Poi si può aggiungere questo ai tuoi PATH, PYTHONPATHe altre variabili, come si farebbe con una normale directory di installazione.
Si noti che potrebbe anche essere necessario specificare le opzioni --upgradee --ignore-installedse eventuali pacchetti da cui dipende richiedono l'installazione di versioni più recenti nella PYTHONUSERBASEdirectory, per sovrascrivere le versioni fornite dal sistema.
Un esempio completo:
PYTHONUSERBASE=/opt/mysterypackage-1.0/python-deps pip install --user --upgrade numpy scipy
..per installare scipye numpyimpacchettare le versioni più recenti in una directory che puoi quindi includere nel tuo PYTHONPATHlike (usando bash e per python 2.6 su CentOS 6 per questo esempio):
export PYTHONPATH=/opt/mysterypackage-1.0/python-deps/lib64/python2.6/site-packages:$PYTHONPATH
export PATH=/opt/mysterypackage-1.0/python-deps/bin:$PATH
L'uso di virtualenv è ancora una soluzione migliore e più ordinata!