it-swarm.com.de

Warum enthält die Pip Freeze-Liste "pkg-resources == 0.0.0"?

Auf Ubuntu 16.04 mit virtualenv 15.0.1 und Python 3.5.2 (beide mit apt installiert), wenn ich eine neue virtuelle Python-Umgebung mit erstelle und aktiviere

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

Ich erhalte folgende Ausgabe:

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.

Tatsächlich listet pip freeze --all diese 4 Pakete auf:

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

Ich würde jedoch erwarten, dass pip freeze (ohne --all) diese implizit installierten Pakete weglässt. Einige davon werden weggelassen, pkg-resources jedoch nicht:

pkg-resources==0.0.0

(Gleiches übrigens für pip freeze --local)

Dies stimmt zwar mit dem Hilfetext überein

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

pkg-resources in der pip freeze-Ausgabe zu haben, erscheint nicht sehr nützlich und kann sogar schädlich sein. (Ich vermute, es ist der Grund, warum pip-sync von pip-tools ausgeführt wird, und deinstalliert pkg-resources aus der virtuellen Umgebung, wodurch die Umgebung auf subtile Weise beschädigt wird.) Gibt es einen guten Grund, warum pip freezepkg-resources listet, anstatt sie auch wegzulassen? Soweit ich mich erinnere, wurde es nicht auf Ubuntu 14.04 (mit Python 3.4) aufgelistet.

31
das-g

Gemäß https://github.com/pypa/pip/issues/4022 handelt es sich um einen Fehler, der darauf zurückzuführen ist, dass Ubuntu falsche Metadaten für das Piping bereitstellt. Nein, es scheint keinen guten Grund für dieses Verhalten zu geben. Ich habe einen Folgefehler bei Ubuntu eingereicht. https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

19
Craig Wright

Ich hatte das gleiche Problem in meiner virtuellen Umgebung. Ich habe es mit pip uninstall pkg-resources==0.0.0 entfernt 

1
Phares