Quand je cours, pip freeze
je vois (parmi d'autres packages attendus) pkg-resources==0.0.0
. J'ai vu quelques articles mentionnant ce package (y compris celui-ci ), mais aucun n'expliquait de quoi il s'agissait, ni pourquoi il est inclus dans la sortie de pip freeze
. La principale raison pour laquelle je me demande est par curiosité, mais aussi, cela semble casser les choses dans certains cas lorsque vous essayez d'installer des packages avec un requirements.txt
fichier généré avec pip freeze
qui inclut la pkg-resources==0.0.0
ligne (par exemple, lorsque Travis CI tente d'installer des dépendances à travers pip
et trouve ceci ligne).
Qu'est-ce que pkg-resources
, et est-il possible de supprimer cette ligne requirements.txt
?
Mettre à jour:
J'ai trouvé que cette ligne ne semble exister que dans la sortie de pip freeze
quand je suis dans un fichier virtualenv
. Je ne suis toujours pas sûr de ce que c'est ou de ce qu'il fait, mais je vais enquêter plus avant en sachant qu'il est probablement lié à virtualenv
.
la source
pip
? Je pense que c'est peut-être quelque chose qu'ils ont manqué dans une ancienne version car8.1.2
je n'ai aucune entrée pourpkg-resources
. (Ce qui ne devrait pas car je suis sûr que çapkg-resources
vient avecsetuptools
).virtualenv
, et en effet, quand je ne suis pas dans une virtualenv, je ne le vois pas non plus. Cela n'explique toujours pas ce que c'est, mais c'est au moins un indice sur lequel je peux enquêter.Réponses:
Selon https://github.com/pypa/pip/issues/4022 , il s'agit d'un bogue résultant d'Ubuntu fournissant des métadonnées incorrectes à pip. Donc, non, il ne semble pas y avoir de bonne raison à ce comportement. J'ai déposé un bug de suivi avec Ubuntu. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
Pour sauvegarder la réponse précédente, il devrait être prudent de supprimer cette ligne de votre requirements.txt. Voici un exemple de strophe Make file qui fige en toute sécurité votre liste de paquets (déposez votre Makefile et exécutez avec
make freeze
):la source
AttributeError: module 'pkg_resources' has no attribute 'iter_entry_points'
, alors je pense qu'il est préférable de la supprimer derequirements.txt
Quant à la partie de votre question " est-il possible de supprimer cette ligne? ":
J'ai le même problème ici en développement sur un ubuntu 16.04 avec cette même ligne dans les exigences. Lors du déploiement sur un debian 8.5 en cours d'exécution
"pip install -r requirements.txt"
pip en plaint que pkg-resources est "introuvable" mais qu'un paquet global est installé "python-pkg-resources" donc la dépendance doit être satisfaite. Idem sur ubuntu: le paquet existe également là-bas.Comme indiqué ici, il semble s'agir d'un "package implicitement installé".
Donc: Si vous êtes sur un Debian / Ubuntu sur lequel python-pkg-resources est installé, il devrait être prudent de supprimer cette ligne . Je l'ai fait et tout va bien. Cependant, comme je ne suis pas un expert en la matière, vous devez garder à l'esprit que cela peut entraîner des complications lors du déploiement sur une autre machine.
la source
virtualenv
?trouvé cette réponse dans ce lien: https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
par: Louis Bouchard (louis) a écrit le 16/11/2019:
Cela a fonctionné pour moi. Mais je ne suis pas un expert donc, si quelqu'un le comprend mieux, ce serait formidable s'il l'expliquait.
Bonjour,
pour ce que ça vaut, le problème vient de la version débianisée de virtualenv qui utilise une version dégroupée de pkg_resource qui est ajoutée au virtualenv au moment de la création:
L'utilisation de la version pip installée de virtualenv peut être une solution de contournement possible:
hth, ... Louis
la source
Sur Ubuntu, vous pouvez résoudre ce problème en supprimant le
virtualenv
package Ubuntu et en installant une nouvelle version à partir depip
:la source