Quando executo pip freeze
, vejo (entre outros pacotes esperados) pkg-resources==0.0.0
. Eu vi alguns posts mencionando este pacote (incluindo este ), mas nenhum explicando o que é ou por que está incluído na saída do pip freeze
. A principal razão pela qual estou me perguntando é por curiosidade, mas também parece quebrar algumas coisas em alguns casos ao tentar instalar pacotes com um requirements.txt
arquivo gerado pip freeze
que inclui a pkg-resources==0.0.0
linha (por exemplo, quando o Travis CI tenta instalar dependências pip
e descobre isso linha).
O que é pkg-resources
e é correto remover esta linha requirements.txt
?
Atualizar:
Eu descobri que essa linha parece existir apenas na saída de pip freeze
quando estou em a virtualenv
. Ainda não tenho certeza do que é ou do que faz, mas vou investigar melhor sabendo que provavelmente está relacionado virtualenv
.
fonte
pip
? Eu estou pensando que isso pode ter sido algo que eles perderam em um lançamento antigo, já que8.1.2
eu não tenho entradapkg-resources
. (O que não deveria, pois tenho certeza quepkg-resources
vem com issosetuptools
).virtualenv
, e na verdade, quando eu sou não em um virtualenv eu não vê-lo também. Isso ainda não explica o que é, mas pelo menos é uma pista que posso investigar.Respostas:
De acordo com https://github.com/pypa/pip/issues/4022 , este é um bug resultante do Ubuntu fornecendo metadados incorretos para o pip. Portanto, não, parece não haver uma boa razão para esse comportamento. Eu registrei um bug de acompanhamento no Ubuntu. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
Para fazer backup da resposta anterior, deve ser seguro remover essa linha do seu requirements.txt. Aqui está um exemplo de estrofe de arquivo Make que congela com segurança sua lista de pacotes (solte em seu Makefile e execute com
make freeze
):fonte
AttributeError: module 'pkg_resources' has no attribute 'iter_entry_points'
, então eu acha que é melhor apenas para removê-lorequirements.txt
Quanto à parte da sua pergunta " está correto remover esta linha? ":
Eu tenho o mesmo problema aqui desenvolvendo em um ubuntu 16.04 com essa mesma linha nos requisitos. Ao implantar em um debian 8.5 em execução
"pip install -r requirements.txt"
pip reclama que pkg-resources "não foi encontrado", mas existe um pacote global instalado "python-pkg-resources", portanto a dependência deve ser satisfeita. O mesmo no ubuntu: o pacote também existe lá.Como declarado aqui , parece haver algum "pacote instalado implicitamente".
Então: Se você estiver em um Debian / Ubuntu com o python-pkg-resources instalado, deve ser seguro remover essa linha . Eu fiz isso e tudo está indo bem. No entanto, como eu não sou especialista nisso, lembre-se de que isso pode levar a complicações ao implantar em outra máquina.
fonte
virtualenv
também?encontrou esta resposta neste link: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
por: Louis Bouchard (louis) escreveu em 2019-11-16:
Funcionou para mim. Mas eu não sou um especialista, portanto, se alguém o disser melhor, seria ótimo se explicasse.
Olá,
pelo que vale a pena, o problema vem da versão debianizada do virtualenv, que usa uma versão desmembrada do pkg_resource, que é adicionada ao virtualenv no momento da criação:
O uso da versão instalada do virtualenv do pip pode ser uma solução viável:
hth, ... Louis
fonte
No Ubuntu, você pode corrigir isso removendo o
virtualenv
pacote Ubuntu e instalando uma nova versão empip
:fonte