Split requirements files in pip

Viewed 22851

To create Python virtual environments I use virtualenv and pip. The workflow is very simple:

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

The number of different requirement files can grow enough to make handy to have a way to include them at once, so I'd rather prefer to say:

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

with req1_req2.txt containing something like:

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

or otherwise:

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

None of that works and however much simple it could be, I can't figure out how to do what I want.

Any suggestion?

2 Answers

Just on a note, you can also split the requirements based on your groupings and embed them in a single file ( or again can prepare multiple requirements file based on your environment), that you can execute.

For example, the test requirements here:

requirements-test.txt

pylint==2.4.4
pytest==5.3.2

The dev requirements here:

requirements-dev.txt

boto3>=1.12.11

Master requirements file containing your other requirements:

requirements.txt

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

Now, you can just install the requirements file embedding your other requirements

pip3 install -r requirements.txt
Related