O Ubuntu PIP instala pacotes globalmente em vez de dentro do VirtualEnv

2

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.

    
por MadPhysicist 06.06.2017 / 20:40

0 respostas