En lugar de la --target
opción o la --install-options
opció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 PYTHONUSERBASE
directorio en su entorno antes de ejecutar el comando, utilizandoexport PYTHONUSERBASE=/path/to/install/to
)
Este sistema utiliza la muy útil --user
opción que dice que para hacer los bin
, lib
, share
y otros directorios que cabe esperar bajo un prefijo personalizado en lugar de $HOME/.local
.
A continuación, puede añadir a su PATH
, PYTHONPATH
y 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 --upgrade
y --ignore-installed
si los paquetes de los que esto depende requieren la instalación de versiones más recientes en el PYTHONUSERBASE
directorio, 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 scipy
y numpy
empaquetar las versiones más recientes en un directorio que luego puede incluir en su PYTHONPATH
gusto (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!