Em vez da --targetopçã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 PYTHONUSERBASEdiretório em seu ambiente antes de executar o comando, usando export PYTHONUSERBASE=/path/to/install/to)
Isso usa a --useropção muito útil, mas diz para fazer obin , lib, sharee outros diretórios que você esperaria em um prefixo personalizado em vez de $HOME/.local.
Então você pode adicionar isso ao seu PATH , PYTHONPATHe outras variáveis, como faria um diretório de instalação normal.
Observe que você também pode precisar especificar o --upgradee--ignore-installed opções se algum pacote do qual isso depende exigir a instalação de versões mais recentes no PYTHONUSERBASEdiretó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 scipye numpyempacotadas 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!