使用 `pip freeze >requirements.txt` 创建带有环境标记的文件?

问题描述 投票:0回答:1

我们可以在requirements.txt中使用环境标记

需求说明符
。例如,仅当 python 版本低于 2.7 时,
argparse;python_version<"2.7"
才会告诉 pip 安装
argparse

但是,使用

pip freeze > requirements.txt
时是否可以生成这些环境标记? pip freeze 的文档没有提到一种方法。我尝试了
-r
选项,但没有成功。
requirements.txt
之后我们还需要手动编辑
pip freeze
文件吗?

python pip requirements.txt
1个回答
0
投票

pip
不能这样做;
pip freeze
仅列出所有当前安装的软件包。您直接安装的所有软件包及其所有递归依赖项。由于
pip
不知道哪些包很重要,因此不会过滤列表。由于
pip
不知道哪些环境标记很重要,因此不会添加任何标记,而且很可能永远不会添加。

当前该领域的最佳实践是:维护一个直接的顶级需求列表。您手动维护它,没有任何工具可以提供帮助。并且您定期将所有已安装软件包的列表冻结到不同的文件中。

关于如何命名这些文件,有两所学校。一所学校教您手动维护

requirements.in
并冻结到
requirements.txt
。另一个说你手动维护
requirements.txt
并冻结到
requirements.lock

除了

pip freeze
之外,还有许多工具可以帮助您冻结不同格式的软件包列表并将它们恢复(即重新安装)到新的空虚拟环境中。我建议您看看
poetry
pip-tools

个人说明:对于大型项目,我手动维护两(两)个需求列表:开发和生产。为了避免重复,开发文件包括使用

-r requirements.txt
的生产文件。请参阅https://pip.pypa.io/en/stable/reference/requirements-file-format/

© www.soinside.com 2019 - 2024. All rights reserved.