当我运行 pip freeze
我看到(在其他预期的包中) pkg-resources==0.0.0
。我看过一些提到这个包的帖子(包括 这个),但没有人解释它是什么,或者为什么它包含在 pip freeze
的输出中。我想知道的主要原因是出于好奇,而且,在某些情况下,当尝试使用 requirements.txt
生成的文件安装包时,它似乎会破坏一些东西 pip freeze
包括 pkg-resources==0.0.0
行(例如,当 Travis CI 尝试通过 pip
安装依赖项并找到此行时)。
什么是 pkg-resources
,是否可以从 requirements.txt
中删除这一行?
更新:
我发现当我在 virtualenv
pip freeze
的输出中。我仍然不确定它是什么或它做了什么,但我会进一步调查知道它可能与 virtualenv
有关。
原文由 elethan 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据 https://github.com/pypa/pip/issues/4022 ,这是由于 Ubuntu 向 pip 提供了不正确的元数据而导致的错误。所以,不,这种行为似乎没有充分的理由。我向 Ubuntu 提交了一个后续错误。 https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463
要备份以前的答案,从您的 requirements.txt 中删除该行应该是安全的。这是一个安全冻结包列表的 Make 文件节示例(放入 Makefile 并使用
make freeze
运行):编辑 2022 年 7 月 6 日:
我被告知包名称因使用的系统而异(
pkg-resources
与pkg_resources
)。请参阅此答案所附的评论,了解不同版本的 Debian/Ubuntu 之间的用法差异。由于pkg-resources
是相关系统发布时(将近 6 年前)历史上正确的包名称,因此在此答案中将保持不变。