Em vez da --target
opção ou do--install-options
opção, descobri que o seguinte funciona bem (da discussão de um bug relacionado a isso em https://github.com/pypa/pip/issues/446 ):
PYTHONUSERBASE=/path/to/install/to pip install --user
(Ou defina o PYTHONUSERBASE
diretório em seu ambiente antes de executar o comando, usando export PYTHONUSERBASE=/path/to/install/to
)
Isso usa a --user
opção muito útil, mas diz para fazer obin
, lib
, share
e outros diretórios que você esperaria em um prefixo personalizado em vez de $HOME/.local
.
Então você pode adicionar isso ao seu PATH
, PYTHONPATH
e outras variáveis, como faria um diretório de instalação normal.
Observe que você também pode precisar especificar o --upgrade
e--ignore-installed
opções se algum pacote do qual isso depende exigir a instalação de versões mais recentes no PYTHONUSERBASE
diretório, para substituir as versões fornecidas pelo sistema.
Um exemplo completo:
PYTHONUSERBASE=/opt/mysterypackage-1.0/python-deps pip install --user --upgrade numpy scipy
..para instalar as versões mais recentes scipy
e numpy
empacotadas em um diretório que você pode incluir no seuPYTHONPATH
como quiser (usando o bash e o python 2.6 no CentOS 6 para este exemplo):
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 o virtualenv ainda é uma solução melhor e mais limpa!