Estou implantando um aplicativo Django em um servidor dev e estou atingindo este erro quando executo pip install -r requirements.txt
:
Traceback (most recent call last):
File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
pkg_resources
parece ser distribuído com setuptools
. Inicialmente, pensei que isso não pudesse ser instalado no Python no virtualenv, por isso instalei setuptools 2.6
(a mesma versão do Python) nos pacotes de sites do Python no virtualenv com o seguinte comando:
sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
EDIT: Isso só acontece dentro do virtualenv. Se eu abrir um console fora do virtualenv, ele pkg_resources
estará presente, mas ainda estou recebendo o mesmo erro.
Alguma idéia de por que pkg_resources
não está no caminho?
python
django
virtualenv
setuptools
pip
igniteflow
fonte
fonte
pip uninstall -y setuptools
e depoispip install setuptools==39.1.0
trabalhou para mim em Anaconda no Windows 10.Respostas:
Atualização de julho de 2018
A maioria das pessoas agora deve usar
pip install setuptools
(possivelmente comsudo
).Alguns podem precisar de (re) instalar o
python-setuptools
pacote através do seu gerenciador de pacotes (apt-get install
,yum install
, etc.).Esse problema pode ser altamente dependente do seu sistema operacional e do ambiente de desenvolvimento. Veja as respostas herdadas / outras abaixo, se as opções acima não estiverem funcionando para você.
Explicação
Essa mensagem de erro é causada por um
setuptools
pacote Python ausente / quebrado . De acordo com o comentário de Matt M. e o setuptools # 581 , o script de autoinicialização mencionado abaixo não é mais o método de instalação recomendado.As instruções do script de inicialização permanecerão abaixo, caso ainda seja útil para qualquer pessoa.
Resposta herdada
Encontrei o mesmo
ImportError
hoje ao tentar usar o pip. De alguma forma, osetuptools
pacote foi excluído no meu ambiente Python.Para corrigir o problema, execute o script de instalação para
setuptools
:(ou se você não tiver
wget
instalado (por exemplo, OS X), tentepossivelmente com
sudo
anexado.)Se você tiver alguma versão
distribute
ousetuptools
menos de 0,6, será necessário desinstalá-la primeiro. *Consulte as Instruções de instalação para obter mais detalhes.
* Se você já tem um trabalho
distribute
,setuptools
é mais fácil atualizá-lo para o "wrapper de compatibilidade" que você alterna . Mas se as coisas já estiverem quebradas, não tente isso.fonte
sudo python
embora YMMV.easy_install pip
fazer o pip trabalhar novamente. Meu problema surgiu com o Cygwin atualizando o Python de 2.6 para 2.7 nas minhas costas enquanto instalava algo não relacionado.distribute
é obsoleta esetuptools
é sua sucessora. Editarei a resposta para atualizá-la, mas não tenho certeza de que é a melhor maneira de lidar com isso, para que alguém possa reverter a edição, nesse caso: Vá aqui .sudo
, como @Nik observou acima?consertou para mim no Debian. Parece que desinstalar alguns pacotes .deb (conjunto distorcido no meu caso) quebrou o caminho que o python usa para encontrar pacotes
fonte
Eu vi esse erro ao tentar instalar o rhodecode em um virtualenv no ubuntu 13.10. Para mim, a solução era correr
antes de executar o easy_install rhodecode.
fonte
pip install --upgrade setuptools
sozinho fez o truque para mim.pip install --upgrade setuptools --user
pip install --upgrade setuptools
devido ao mesmo erro:No module named pkg_resources
pip install --upgrade distribute
fez o trabalho ao usar o módulo venv do Python 3. O--distribute
sinalizador suportado pelo virtualenv do Python 2 , mas é necessário instalardistribute
nos ambientes criados porvenv
.Também aconteceu comigo. Acho que o problema ocorrerá se o requirements.txt contiver uma entrada "distribuir" enquanto o virtualenv usar setuptools. O Pip tentará corrigir as ferramentas de configuração para liberar espaço para distribuição, mas infelizmente falhará no meio do caminho.
A solução mais fácil é excluir o virtualenv atual e criar um novo virtualenv com o argumento --distribute.
Um exemplo se estiver usando virtualenvwrapper:
fonte
pip install -U distribute
após a ativação do ambiente fará o trabalho.No CentOS 6, a instalação do pacote python-setuptools o corrigiu.
fonte
sudo apt-get install python3-setuptools
sudo yum reinstall python-setuptools
corrigiu.Eu tive esse erro anteriormente e a resposta com a classificação mais alta deu-me um erro ao tentar baixar o
ez_setup.py
arquivo. Encontrei outra fonte para que você possa executar o comando:Descobri que eu também precisava usá
sudo
-lo para fazê-lo funcionar, então você pode precisar executar:Também criei outro local no qual o script pode ser baixado:
https://gist.github.com/ajtrichards/42e73562a89edb1039f3
fonte
curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
Depois de tentar várias dessas respostas e entrar em contato com um colega, o que funcionou para mim no Ubuntu 16.04 foi:
No meu caso, era apenas uma versão antiga do travesseiro 3.1.1 que estava tendo problemas (o travesseiro 4.x funcionava bem) e agora está resolvido!
fonte
Precisava de um pouco mais de sudo. Em seguida, usei o easy_install para instalar o pip. Trabalho.
fonte
sudo
não deve ser exigido em um virtualenvCorrigi o erro com o virtualenv, fazendo o seguinte:
Copiou pkg_resources.py de
/Library/Python/2.7/site-packages/setuptools
para
/Library/Python/2.7/site-packages/
Esta pode ser uma solução barata, mas funcionou para mim.
.
Se as ferramentas de configuração não existirem, tente instalar os pacotes do site do sistema digitando
virtualenv --system-site-packages /DESTINATION DIRECTORY
, alterando a última parte para o diretório em que você deseja instalar.pkg_rousources.py
estará nesse diretório em lib / python2.7 / site-packagesfonte
Para mim, esse erro estava sendo causado porque eu tinha um subdiretório chamado "site"! Não sei se é um bug ou não, mas comecei com:
/some/dir/requirements.txt / some / dir / site /
O pip install -r requirements.txt não funcionaria, fornecendo-me o erro acima!
renomear a subpasta de "site" para "src" corrigiu o problema! Talvez o pip esteja procurando "pacotes de sites"? Louco.
fonte
Eu tive esse problema ao ativar meu virtualenv como um usuário diferente daquele que o criou. Parece ser um problema de permissão. Descobri isso quando tentei a resposta por @cwc e vi isso na saída:
Voltando ao usuário que criou o virtualenv, a execução do
pip install
comando original ocorreu sem problemas. Espero que isto ajude!fonte
Eu também tive esse problema hoje. Eu só tenho o problema dentro do ambiente virtual.
A solução para mim foi desativar o ambiente virtual, excluir e desinstalar o virtualenv com pip e reinstalá-lo. Depois disso, criei um novo ambiente virtual para o meu projeto e o pip funcionou bem tanto dentro do ambiente virtual quanto no ambiente normal.
fonte
Parece que eles se afastaram do bitbucket e agora estão no github ( https://github.com/pypa/setuptools )
O comando a ser executado é:
fonte
Para mim, acabou por ser um problema de permissões
site-packages
. Como é apenas meu ambiente de desenvolvimento, aumentei as permissões e tudo está funcionando novamente:fonte
Se você estiver enfrentando esse problema com um aplicativo instalado via conda , a solução (conforme declarada neste relatório de bug) é simplesmente instalar ferramentas de instalação com:
fonte
No Windows, com python 3.7, isso funcionou para mim:
--user
instala pacotes no diretório inicial, o que não requer privilégios de administrador.fonte
a solução simples é que você pode usar o conda para atualizar as ferramentas de instalação ou todo o ambiente. (Especialmente para usuários do Windows.)
se o setuptools for removido, você precisará instalar o setuptools novamente.
se todos esses métodos não funcionarem, você poderá atualizar o ambiente conda. Mas eu não recomendo que você precise reinstalar e desinstalar alguns pacotes, pois depois disso isso agravará a situação.
fonte
Aparentemente, você está perdendo as ferramentas de configuração. Algumas versões de virtualenv usam distribuir em vez de setuptools por padrão. Use a
--setuptools
opção ao criar a virtualenv ou configure-aVIRTUALENV_SETUPTOOLS=1
em seu ambiente.fonte
No meu caso, eu tinha duas versões python instaladas inicialmente e depois excluía a versão anterior. Então, ao criar o ambiente virtual
estava se referindo ao python desinstalado
O que funcionou para mim
O mesmo acontece quando você está tentando usar o pip.
fonte
Me deparei com esta resposta quando estava tentando seguir este guia para OSX . O que funcionou para mim foi que, depois de correr
python get-pip
, tive que TAMBÉMeasy_install pip
. Isso resolveu o problema de não conseguir executar o pip. Eu tinha um monte de coisas antigas do macport instaladas. Isso pode ter entrado em conflito.fonte
No Windows, instalei o pip baixado de www.lfd.uci.edu/~gohlke/pythonlibs/ e resolvi esse problema.
Então, eu deveria ter instalado o setuptools (easy_install) primeiro.
fonte
basta reinstalar o seu
setuptools
:então tudo ficará bem.
fonte
Eu uso o CentOS 6.7, e meu python acabou de atualizar do 2.6.6 para o 2.7.11, depois de tentar tantas respostas diferentes, finalmente o seguinte faz o trabalho:
Espero ajudar alguém na mesma situação.
fonte
Nenhuma das respostas postadas funcionou para mim, então eu reinstalei o pip e funcionou!
(referência: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/ )
fonte
Corri para esse problema depois de atualizar minha compilação Ubuntu. Parece ter passado e removido as ferramentas de configuração em todos os meus ambientes virtuais.
Para remediar isso, reinstalei o ambiente virtual novamente no diretório de destino. Isso limpava as ferramentas de configuração ausentes e fazia as coisas funcionarem novamente.
por exemplo:
fonte
Para mim, uma boa solução era usar a
--no-download
opção para virtualenv (VIRTUALENV_NO_DOWNLOAD=1 tox
para tox.)fonte
No Opensuse 42.1, o seguinte problema foi corrigido:
fonte
ImportError: nenhum módulo chamado pkg_resources: a solução é reinstalar o python pip usando o seguinte comando:
Etapa: 1 Faça o login no usuário root.
Etapa: 2 Desinstale o pacote python-pip, se existente.
Etapa: 3 Baixar arquivos usando o comando wget (download de arquivo
pwd
)Etapa: 4 Execute o arquivo python.
Etapa: 5 Finalmente, execute o comando de instalação.
Nota: O usuário deve ser root.
fonte
Tive esse erro no meu ambiente do Google App Engine. E
pip install -t lib setuptools
corrigiu o problema.fonte
Se você estiver usando Python 3, use pip3 em vez de pip. O comando parece
$ pip3 install requirements.txt
fonte