pip freeze创建了一些奇怪的路径而不是软件包版本。

146

我正在开发一个 Python 包。我使用 pip freeze > requirements.txt 将需要的包添加到 requirement.txt 文件中。然而,我发现有些包在其版本号前面有一些路径信息。

Translated:

我正在开发一个Python包。我使用pip freeze > requirements.txt将所需的包添加到requirement.txt文件中。但是,我意识到一些包,在它们的包版本号前面有一些路径。

numpy==1.19.0
packaging==20.4
pandas @ file:///opt/concourse/worker/volumes/live/38d1301c-8fa9-4d2f-662e-34dddf33b183/volume/pandas_1592841668171/work
pandocfilters==1.4.2

然而,在环境内部,我得到:

>>> pandas.__version__
'1.0.5'

你有没有想过如何解决这个问题?


1
不确定为什么会出现这种情况,但看起来pip freeze由于某些原因输出了直接引用。关于这个问题在Github上有一次讨论:pip freeze does not show version for in-place installs - adamgy
12
“pip list --format=freeze > requirements.txt” 会提供预期的结果吗? - adamgy
是的。"pip list --format=freeze > requirements.txt" 解决了问题。谢谢。 - Naeem Khoshnevis
很高兴能帮到你,如果我的回答对你有帮助,请考虑给我点赞/采纳我的答案;) - adamgy
1
完成。我最近加入了stackoverflow。目前还不能点赞 :)。 - Naeem Khoshnevis
1个回答

300

看起来这是 pip freeze 在版本 20.1 中存在的一个公开问题,目前的解决方法是使用:

pip list --format=freeze > requirements.txt
简而言之,这是由于更改pip freeze的行为以包括从直接URL引用安装的发行版的直接引用所致。您可以在 GitHub 上阅读有关此问题的更多信息:pip freeze does not show version for in-place installsOutput of "pip freeze" and "pip list --format=freeze" differ for packages installed via Direct URLsBetter freeze of distributions installed from direct URL references

26
两年过去了,你发布的内容仍然很相关,谢谢。 - user1465073
3
3年过去了,你的帖子仍然很有意义,谢谢 - undefined

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