Estou tentando criar um virtualenv e instalar pacotes do requirements.txt que tenho com o projeto.
Quando eu crio o ambiente, eu verifico se o python e o pip realmente vêm desse ambiente. Ou seja, quando eu corro:
source ./virtualenv/bin/activate
which pip
which python
Eu obtenho resultados que apontam para os binários localizados dentro do diretório virtualenv
Eu então procuro instalar os pacotes:
pip install -r requirements.txt
Por algum tempo, estava me dando problemas sobre a linha pkg-resources=0.0.0
dentro do requirements.txt. Como se virou, essa linha é entrada neste arquivo por causa de um bug no Ubuntu. Como você provavelmente pode imaginar, eu criei este arquivo em uma máquina Ubuntu.
Depois de encontrar a linha, a instalação continua.
No entanto, quando eu executo o 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 disso, se eu desativar o virtualenv e executar a lista de pip globalmente, vejo que todas as dependências foram instaladas globalmente.
Há duas perguntas aqui. Um - que é mais obvio - por que isso acontece? A segunda é como eu poderia limpar meus pacotes globais e desinstalar os poluentes que agora residem lá?
Adendo:
No entanto, outro comportamento bizarro consiste no seguinte. Quando tento executar sudo pip uninstall -r requirements.txt
de dentro do virtualenv com esperanças de reverter a instalação global, recebo o seguinte erro:
Não é possível desinstalar o requisito aldryn-apphooks-config, não instalado
Isto é, parece que quando tento desinstalar, o pip tenta procurar por pacotes dentro do virtualenv.
Por outro lado, quando eu desativo 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 de desinstalação do pip. Eles "procuram" pacotes em lugares diferentes.