【问题标题】:pip freeze creates some weird path instead of the package versionpip freeze 创建了一些奇怪的路径而不是包版本
【发布时间】:2022-01-12 12:29:57
【问题描述】:

我正在开发一个 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'

你知道如何解决这个问题吗?

【问题讨论】:

  • 不确定为什么会这样,但看起来 pip freeze 出于某种原因正在输出direct reference。 Github上有关于这个问题的讨论:pip freeze does not show version for in-place installs
  • “pip list --format=freeze > requirements.txt”是否提供了预期的结果?
  • 是的。 “pip list --format=freeze > requirements.txt”解决了这个问题。谢谢。
  • 很高兴我能帮助你,如果我愿意,请考虑支持/接受我的回答;)
  • 完成。我最近加入了stackoverflow。 Upvoting 尚未激活:)。

标签: python path pip requirements.txt


【解决方案1】:

看起来这是pip freeze 版本20.1 中的一个未解决问题,当前的解决方法是使用:

pip list --format=freeze > requirements.txt

简而言之,这是由于将 pip freeze 的行为更改为包含 direct references 以用于从直接 URL 引用安装的发行版。

您可以在 GitHub 上阅读有关该问题的更多信息:

pip freeze does not show version for in-place installs

Output of "pip freeze" and "pip list --format=freeze" differ for packages installed via Direct URLs

Better freeze of distributions installed from direct URL references

【讨论】:

    猜你喜欢
    • 2021-09-26
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多