pip freeze 显示了一个奇怪版本的包

Pip freeze shows a weird version of a package

所以我使用以下命令创建了 requirements.txt 文件:

pip list --format=freeze > requirements.txt

其中一个软件包的版本是这样的: setuptools==52.0.0.post20210125

为什么会这样? 当我在云平台上部署我的项目时,这会报错吗?

来自虚拟环境:

$ pip list --format=freeze > pip_list.txt

$ pip freeze > pip_freeze.txt

$ diff pip_list.txt pip_freeze.txt
84d83
< pip==21.1.3
124d122
< setuptools==57.1.0

正如@Corralien 所指出的那样,有一个 post-release 版本的东西并不奇怪:https://www.python.org/dev/peps/pep-0440/#version-scheme

Post-发布通常是为了对已发布的包进行一些小的更改,这些更改不一定会影响代码(例如,自述文件中的错字,或其他一些小的包装错误)。

在这种情况下 有点奇怪,因为在 PyPI there is no 52.0.0.post20210125 release for setuptools. There is, however, a 51.1.0.post20201221 release which was apparently made by mistake.

不过我不知道你是怎么得到这个的。它似乎不存在(可能已被删除)。

您应该在冻结您的 pip 环境之前尝试升级 setuptools,因为您拥有的那个已经过时了。