Estou tentando criar um virtualenv e instalar pacotes do require.txt que tenho com o projeto.
Quando crio o ambiente, verifico se python e pip realmente vêm desse ambiente. Ou seja, quando executo:
source ./virtualenv/bin/activate
which pip
which python
Obtenho resultados que apontam para os binários localizados dentro do diretório virtualenv
Em seguida, prossigo com a instalação dos pacotes:
pip install -r requirements.txt
Por um tempo, tive problemas com a pkg-resources=0.0.0
linha dentro do arquivo requirements.txt. Acontece que essa linha foi inserida neste arquivo por causa de um bug no Ubuntu. Como você provavelmente pode imaginar, criei este arquivo em uma máquina Ubuntu.
Depois de eliminar a linha, a instalação continua.
No entanto, quando executo pip list após a instalação, a lista contém apenas
pip (8.1.1) pkg-resources (0.0.0) setuptools (20.7.0)
Além do mais, se eu desativar o virtualenv e executar pip list globalmente, verei que todas as dependências foram instaladas globalmente.
Há duas perguntas aqui. Uma – a mais óbvia – por que isso acontece? A segunda é como eu poderia limpar meus pacotes globais e desinstalar os poluentes que agora residem neles?
Termo aditivo:
Ainda outro comportamento bizarro consiste no seguinte. Quando tento executar sudo pip uninstall -r requirements.txt
a partir do virtualenv na esperança de reverter a instalação global, recebo o seguinte erro:
Não é possível desinstalar o requisito aldryn-apphooks-config, não instalado
Ou seja, parece que quando tento desinstalar, o pip tenta procurar pacotes dentro do virtualenv.
Por outro lado, ao desativar o virtualenv, posso desinstalar com sucesso os pacotes da instalação global usando o mesmo comando.
De alguma forma, há uma diferença em como o comando pip install funciona no Ubuntu quando comparado ao comando pip unlock. Eles “procuram” pacotes em lugares diferentes.