在 pip 中拆分需求文件

要创建 Python 虚拟环境,我使用 viralenv 和 pip:

$ virtualenv project
$ cd project
$ . bin/activate
$ pip install -r /path/to/requirements/req1.txt
$ pip install -r /path/to/requirements/req2.txt

不同的需求文件的数量可以增长到足够方便的方式来立即包含它们,所以我宁愿说:

$ pip install -r /path/to/requirements/req1_req2.txt

req1_req2.txt包含类似下面这样的内容:

include /path/to/requirements/req1.txt
include /path/to/requirements/req2.txt

否则:

$ pip install -r /path/to/requirements/*.txt

这些都不管用,不管它有多简单,我都不知道如何去做我想做的事情。

有什么建议吗?

23861 次浏览

-r标志不仅仅局限于命令行使用,它也可以在需求文件中使用。因此,当 req-1-and-2.txt 包含以下内容时,运行 pip install -r req-1-and-2.txt:

-r req-1.txt
-r req-2.txt

将安装 req-1.txt 和 req-2.txt 中指定的所有内容。

简单地说,您还可以根据您的分组来分割需求,并将它们嵌入到单个文件中(或者根据您的环境来准备多个需求文件) ,这样您就可以执行它们了。

例如,这里的测试要求:

需求-测试

pylint==2.4.4
pytest==5.3.2

这里的开发要求:

需求-dev. txt

boto3>=1.12.11

包含其他要求的主要要求文件:

要求

-r requirements-dev.txt
-r requirements-test.txt

现在,您可以只安装嵌入其他需求的需求文件

pip3 install -r requirements.txt