Trick! How to Split Pip Requirements

Trick! How to Split Pip Requirements

Don't get me wrong Pip is a great package manager but there is one thing that had always bugged me, that was having all the dependencies within a single file. For example having all of your development dependencies (linters, formators etc) and your application dependencies (Scrapli, Nornir etc) all within one requirements.txt

This was until I discovered the fact that you can import dependencies from one requirements.txt to another. Let me explain...

First, create a requirements.txt containing your application dependencies.

$ cat requirements.txt
pyats==21.7
pyats.aereport==21.7
pyats.aetest==21.7
pyats.async==21.7
pyats.connections==21.7
pyats.datastructures==21.7
pyats.easypy==21.7
pyats.kleenex==21.7
...

Now we can create a requirements-dev.txt containing our development dependencies, along with importing our previous dependencies, using -r requirements.txt. Like so:

-r requirements.txt
appdirs==1.4.4
astroid==2.6.6
attrs==21.2.0
bandit==1.7.0
black==21.7b0
click==8.0.1
eradicate==2.0.0
flake8==3.9.2
flake8-builtins==1.5.3
flake8-eradicate==1.1.0
...

Now if you now perform a pip install -r requirements-dev.txt you will install both sets of dependencies, whilst keeping the 2 sets of dependencies separated!

Subscribe to our newsletter and stay updated.

Don't miss anything. Get all the latest posts delivered straight to your inbox.
Great! Check your inbox and click the link to confirm your subscription.
Error! Please enter a valid email address!