在Python中,假设我正在使用像flake8
这样的库为我的项目执行样式指南,我还告诉我在同一项目中工作的程序员同事,flake8
指南是我们将用作样式指南的。然而,我并没有直接在我的项目中使用它。我在命令行中运行flake8来检查我的项目是否遵循flake8准则,但不要在我的项目中使用它。如果是这种情况,那么flake8
是否属于requirements.txt
文件?或者可以省略它,并且只有项目中实际使用的依赖项需要进入requirements.txt
文件中?
需求文件应该只包含程序所需的依赖项。由于flake8是确保造型一致性的支持模块,因此不属于此类。我不会把它包括在内。
Flake8是一个开发依赖项。这意味着,虽然这些包不需要在生产环境中,但它们无论如何都应该在开发环境中。
根据这个SO答案,我建议使用多环境需求txt文件结构:
`-- your_project_root
|-- requirements
| |-- common.txt
| |-- dev.txt
| `-- prod.txt
`-- requirements.txt
文件的内容如下所示:
common.txt:
# Contains requirements common to all environments
req1~=1.0
req2~=1.0
req3~=1.0
...
dev.txt:
# Specifies only dev-specific requirements
# But imports the common ones too
-r common.txt
flake8~=6.0.0
dev_req~=1.0
...
prod.txt:
# Same for prod...
-r common.txt
prod_req~=1.0
...
然后你可以运行任一
pip install -r requirements/dev.txt
或
pip install -r requirements/prod.txt
取决于您所处的环境。
根据您使用的其他构建工具和CI/CD,您可能仍然需要requirements.txt
,在这种情况下,您可以用所需的内容填充它:
requirements.txt:
# Mirrors prod
-r requirements/prod.txt