Não consegui encontrar esse problema documentado em nenhum lugar, mas se você especificar install-option
em ~/.pip/pip.conf
, ele não será substituído por virtualenv
. Eu especifico --prefix=/path/to/somwhere
em install-option
devido às restrições do usuário no meu PC de trabalho e, com ele definido, qualquer instalação em um venv (com $PIP_RESPECT_VIRTUALENV
habilitado) ainda é instalado no caminho especificado por install-option
. Este não era um comportamento esperado para mim, mas não tenho certeza se ignorar pip.conf
é o curso de ação correto. Talvez seja melhor documentar esse comportamento. Outra coisa estranha é que você não pode desinstalar enquanto estiver no virtualenv, pois o pacote não está instalado no venv e o pip não pode encontrá-lo.
Isso aconteceu comigo ao usar pip 1.4.1 e 1.5.6 e virtualenv 1.11.6.
Minha solução atual é a de definir $PIP_CONFIG_FILE
a /dev/null
via virtualenvwrapper
's postactivate
gancho e desarmar-lo em postdeactivate
.
Este problema ainda está presente. No meu caso, eu gostaria de usar instalações de --user
quando não em um venv (através da configuração em ~/.config/pip/pip.conf
, mas instalações "normais" (em-venv) quando em um venv (faça --user
instalações até fazem sentido em um venv?).
Duas soluções possíveis (das quais apenas a primeira pode realmente ser implementada por pip, mas também posso começar a discussão aqui) são
~/.config/pip/pip-novenv.conf
ou qualquer outro), ou--user
um ambiente autônomo em um venv (novamente, não tenho certeza se --user
+ venv faz sentido: há apenas um ~/.local/lib/pythonX.Y
então todo o isolamento é quebrado lá).Problema ainda presente no Python 3.5.3.
É muito irônico e frustrante que se alguém tenta ser cuidadoso com o ambiente, a ponto de usar ambientes virtuais e instalações de usuário em pip.conf, acaba com um sistema que não funciona.
Eu estava tentando evitar que membros da equipe usassem sudo pip
. Está ficando cada vez mais difícil.
Não é um bug em virtualenv
- que não define PIP_CONFIG_FILE=/dev/null
ao usar alguma opção?
Oh, fui mordido por isso hoje.
Alguém pode fornecer instruções claras sobre como reproduzir isso?
Comentários muito úteis
Minha solução atual é a de definir
$PIP_CONFIG_FILE
a/dev/null
viavirtualenvwrapper
'spostactivate
gancho e desarmar-lo empostdeactivate
.