Each Answer to this Q is separated by one/two green lines.
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
req1_req2.txt containing something like:
include /path/to/requirements/req1.txt include /path/to/requirements/req2.txt
$ 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.
-r flag isn’t restricted to command-line use only, it can also be used inside requirements files. So running
pip install -r req-1-and-2.txt when req-1-and-2.txt contains this:
-r req-1.txt -r req-2.txt
will install everything specified in req-1.txt and req-2.txt.
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:
The dev requirements here:
Master requirements file containing your other requirements:
-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