小编Pau*_*ith的帖子

使用 >= 或 ~= 来实现跨系统兼容性?

我的目标是一种简单而正确的方法来导出我的venv. 在最佳情况下,结果requirements.txt适用于所有兼容系统。

目前我使用pip freeze > requirements.txt. 这使用了==“版本匹配子句”。在其他系统上,该文件可能由于版本冲突而无法工作,尽管它是兼容的。

PEP 440中还有一个~=“兼容条款”。但是,我在 pip freeze docs中找不到相应的选项。awk使用“查找和替换”或类似将 == 替换为 ~= 的工具可以正常工作。

我天真的结论是,这~=将是在 中使用的理想子句requirements.txt。然而,当我查看流行的软件包时,他们经常使用它们>=来指定版本。例如在urllib3

~= 有一个我没有看到的缺点吗?
如果不是这样:为什么在这么多包中使用 >= ?

编辑:
Pigar有一个本地使用 >= 的选项,并且这里有一个与 freeze 的比较。显然,他们也不使用〜=。
然而,我仍然不确定该使用哪一个,因为当发生重大版本更改时 >= 可能会中断。此外,较低次要版本的软件包将被标记为不兼容,尽管它们应该是兼容的。

python pip requirements.txt

8
推荐指数
1
解决办法
588
查看次数

标签 统计

pip ×1

python ×1

requirements.txt ×1