pip-tools
From ym2149.org
- declare what your repo actually uses in requirements.in
- use pip-tools to maintain and check requirements.txt
- use requirements.txt for testing and deployment
- lib setup.py should read requirements.in
- an extra that i call frozen can read requirements.txt if you want to depend on the lib along with the dependencies it was tested against