pip freeze无法显示软件包版本

25

最近周末我将Ubuntu系统升级到了20.04,然后尝试使用Python 3.8.2创建虚拟环境并pip install requirements.txt

在requirements.txt中,我正在从私有的GitLab存储库中安装一些代码。

以前,如果我运行pip freeze,我可以看到所有包的名称和版本(格式为package_name == version)。

但是,现在如果我运行pip freeze,我会看到类似于以下内容...

pkg1 @ file:///tmp/tmp44ir_jik
pkg2 @ file:///tmp/tmp5pijtzbq
...

(pkg1和pkg2都是通过pip安装私有git仓库的)

我想以某种方式显示版本号,但不知道该如何做。

我的意思是,pip list确实会显示版本号,但我正在编写脚本,希望使用pip freeze。 如何使pip freeze显示之前的格式(即pkg_name==pkg_version)?

提前感谢。


1
我不明白,为什么 pip3 freeze > requirements_patrick_mds_clean.txt 会生成无法使用的 requirements.txt 文件?如果它使包依赖于本地路径/版本,那这个命令有什么意义呢? - Charlie Parker
2个回答

35

您可以使用 pip list --format=freeze 来代替。


@ X Æ A-13 我明白了。是的,现在它以我想要的格式显示出来了。但是,我该如何直接更改 pip freeze 的格式,而不是执行 'pip list' 然后更改格式呢? - Lowan
4
我猜你需要通过 pip install "pip<20.1" 进行降级。或尝试撤销 PEP 610 - X Æ A-Xiii
@X Æ A-13 降级成功了!另外,知道 pip list 命令有 --format 标志可以获取我想要的信息也很不错。谢谢! - Lowan
2
不知怎么的,埃隆的儿子已经在StackOverflow上回答问题了,这并不让我感到惊讶。 - billiam
2
我不明白,为什么 pip3 freeze > requirements_patrick_mds_clean.txt 会生成无法使用的 requirements.txt 文件?如果它使包依赖于本地路径/版本,那这个命令有什么意义呢? - Charlie Parker

8

我无法对上面的问题进行评论,因此回答X Æ A-13的回答是多余的:

 pip list --format=freeze > requirements.txt

我不明白,为什么 pip3 freeze > requirements_patrick_mds_clean.txt 会生成无法使用的 requirements.txt 文件?如果它使包依赖于本地路径/版本,那这个命令有什么意义呢? - Charlie Parker

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