web-dev-qa-db-ja.com

なぜpipフリーズリスト「pkg-resources == 0.0.0」なのですか?

Ubuntu 16.04でvirtualenv 15.0.1およびPython 3.5.2(両方ともaptでインストール)を使用して新しいPython仮想環境を作成およびアクティブ化するとき

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

次の出力が得られます。

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.

確かにpip freeze --allはこれらの4つのパッケージをリストします:

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

ただし、pip freeze--allなし)がこれらの暗黙的にインストールされたパッケージを省略することを期待します。それらの一部は省略しますが、pkg-resourcesは省略しません。

pkg-resources==0.0.0

pip freeze --localと同じです)

これはヘルプテキストと一致していますが

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

pkg-resources出力にpip freezeを含めることは、あまり有用ではなく、有害でさえあるようです。 (pip-syncpip-tools から実行すると、仮想環境からpkg-resourcesがアンインストールされ、それにより環境が微妙に破壊されるのではないかと思われます。)なぜpip freezepkg-resourcesを省略せずにリストするのですか?私が覚えている限り、Ubuntu 14.04にはリストしませんでした(Python 3.4を使用) 。

34
das-g

https://github.com/pypa/pip/issues/4022 によると、これはUbuntuがpipに誤ったメタデータを提供したことによるバグです。そのため、この動作の正当な理由はないようです。 Ubuntuでフォローアップバグを提出しました。 https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/163546

20
Craig Wright

仮想環境でも同じ問題が発生しました。 pip uninstall pkg-resources==0.0.0で削除しました

2
Phares