dmenv
handles creation of virtualenv and lock files for you.
Here it is in action:
requirements.lock
to "freeze" all your dependenciesbash
$ dmenv lock
Creating virtualenv in: /path/to/.venv/3.6.7
-> running /usr/bin/python3 -m /path/to/.venv venv/3.6.7
-> running /path/to/.venv/3.6.7/bin/python -m pip install pip --upgrade
...
-> running /path/to/.venv/3.6.7/bin/pip freeze --exclude-editable
:: Requirements written to /path/to/requirements.lock
requirements.lock
to install all the dependencies
at their frozen version:bash
$ dmenv install
:: Creating virtualenv in: /path/to/.venv/3.6.7
-> running /usr/bin/python3 -m venv /path/to/.venv/3.6.7
-> running /path/to/.venv/3.6.7/bin/python -m pip install pip --upgrade
...
-> running /path/to/.venv/3.6.7/bin/python setup.py develop --no-deps
...
Installing demo script to /path/to/.venv/3.6.7/bin
Go read the fine documentation and learn how to use dmenv for your own Python project :)