En lugar de la --targetopción o la --install-optionsopción, he encontrado que lo siguiente funciona bien (de la discusión sobre un error relacionado con esto en https://github.com/pypa/pip/issues/446 ):
PYTHONUSERBASE=/path/to/install/to pip install --user
(O configure el PYTHONUSERBASEdirectorio en su entorno antes de ejecutar el comando, utilizandoexport PYTHONUSERBASE=/path/to/install/to )
Este sistema utiliza la muy útil --useropción que dice que para hacer los bin, lib, sharey otros directorios que cabe esperar bajo un prefijo personalizado en lugar de $HOME/.local.
A continuación, puede añadir a su PATH, PYTHONPATHy otras variables como lo haría un directorio de instalación normal.
Tenga en cuenta que también es posible que deba especificar las opciones --upgradey --ignore-installedsi los paquetes de los que esto depende requieren la instalación de versiones más recientes en el PYTHONUSERBASEdirectorio, para anular las versiones proporcionadas por el sistema.
Un ejemplo completo:
PYTHONUSERBASE=/opt/mysterypackage-1.0/python-deps pip install --user --upgrade numpy scipy
... para instalar scipyy numpyempaquetar las versiones más recientes en un directorio que luego puede incluir en su PYTHONPATHgusto (usando bash y para python 2.6 en CentOS 6 para este ejemplo):
export PYTHONPATH=/opt/mysterypackage-1.0/python-deps/lib64/python2.6/site-packages:$PYTHONPATH
export PATH=/opt/mysterypackage-1.0/python-deps/bin:$PATH
¡Usar virtualenv sigue siendo una solución mejor y más ordenada!