web-dev-qa-db-fra.com

Pourquoi pip gel liste-t-il "pkg-resources == 0.0.0"?

Sur Ubuntu 16.04 avec virtualenv 15.0.1 et Python 3.5.2 (tous deux installés avec apt) lorsque je crée et active un nouvel environnement virtuel Python avec

virtualenv .virtualenvs/wtf -p $(which python3) --no-site-packages
source .virtualenvs/wtf/bin/activate

Je reçois la sortie suivante:

Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/das-g/.virtualenvs/wtf/bin/python3
Also creating executable in /home/das-g/.virtualenvs/wtf/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

En effet, pip freeze --all répertorie ces 4 packages:

pip==8.1.2
pkg-resources==0.0.0
setuptools==25.2.0
wheel==0.29.0

Cependant, je m'attendrais à ce que pip freeze (sans --all) omette ces packages implicitement installés. Il en omet certains, mais pas pkg-resources:

pkg-resources==0.0.0

(Même btw. Pour pip freeze --local)

Bien que cela soit cohérent avec le texte d'aide

$> pip freeze --help | grep '\--all'
  --all                       Do not skip these packages in the output: pip, setuptools, distribute, wheel

avoir pkg-resources dans la sortie pip freeze ne semble pas très utile et pourrait même être dangereux. (Je suppose que c'est pourquoi exécuter pip-sync à partir de pip-tools désinstalle pkg-resources de l'environnement virtuel, rompant ainsi subtilement l'environnement.) Existe-t-il une bonne raison pour laquelle pip freeze répertorie pkg-resources au lieu de l'omettre également? Pour autant que je m'en souvienne, il ne l'a pas répertorié dans Ubuntu 14.04 (avec Python 3.4).

31
das-g

Selon https://github.com/pypa/pip/issues/4022 , il s'agit d'un bogue résultant du fait qu'Ubuntu a fourni des métadonnées incorrectes à pip. Donc, non, il ne semble pas y avoir de bonne raison pour ce comportement. J'ai déposé un bug de suivi avec Ubuntu. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

19
Craig Wright

J'ai eu le même problème dans mon environnement virtuel. Je l'ai enlevé avec pip uninstall pkg-resources==0.0.0 

1
Phares