为什么pip freeze列出"pkg-resources==0.0.0"?

53

在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

pip freeze的输出中有pkg-resources似乎并没有什么用处,甚至可能会有害。(我怀疑这就是为什么从pip-tools运行pip-sync时会从虚拟环境中卸载pkg-resources,从而微妙地破坏环境。)有没有什么好的理由让pip freeze列出pkg-resources而不是省略它呢? 据我记得,在Ubuntu 14.04(带有Python 3.4)上它是不列出来的。


真是令人惊讶,目前还没有对此的答案... - Adam
这导致我的生产推送失败,所以我非常好奇答案/解决方案是什么。 - Craig Wright
3
我创建了一个工单,它可能最终会提供一个答案:https://github.com/pypa/pip/issues/4022 - Craig Wright
5
这是一个关于Ubuntu操作系统中的Python-pip软件包的错误报告。该错误可能导致Python-pip在安装包时出现问题。许多用户都已经确认了这个问题,但目前还没有得到解决。 - Craig Wright
1
Debian的错误报告[#871790]也涉及此问题。 - das-g
显示剩余2条评论
2个回答

40

这也会影响Debian用户。看起来修复已经针对Ubuntu进行了请参见原始错误报告的最新评论,以及Debian(#1 #2)。 - Mike

10

我在虚拟环境中也遇到了相同的问题,我使用 pip uninstall pkg-resources==0.0.0 命令卸载了它。


5
警告:这可能会影响您的虚拟环境。 - das-g
@das-g 它可能以何种方式破坏虚拟环境? - marcanuy
抱歉,我不太记得当时出了什么问题,而且我目前手边也没有Ubuntu系统。如果我没记错,“pkg-resources”是virtualenv的一个重要组成部分,并且被Python、pip或者可能是virtualenv本身所需要。不确定缺少它会导致什么问题。 - das-g

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接