Managing Dependencies
To know about the required dependencies, their minimum required versions check the requirements*.txt
files. Whenever we pin to a specific version in requirements*.in
, we add a comment explaining why we are doing so. We also have comments on their use.
All the required dependencies for running pip-compile are in pip-tools (https://github.com/jazzband/pip-tools) which installs pip-compile command.
To install or update all dependencies
Note : The pip-compile command lets you compile a requirements*.txt
from your dependencies, specified in either setup.py
or requirements*.in
. So, ensure you don’t have requirements.txt
if you compile setup.py
or requirements*.in
from scratch, otherwise, it might interfere. You can also specify a file name other than requirements.txt
in the following command.
To compile all dependencies run
pip-compile --output-file requirements.txt requirements.in
To update all dependencies; Install GNU Make and periodically run
make up-reqs
To install all dependencies to your local environment run
pip-sync requirements*.txt
To add a specific new dependency
To compile a specific dependency run
pip-compile --output-file requirements.txt requirements.in [package_name] --no-emit-index-url
Replace [package_name]
with the dependency name you want from requirements.txt
file.
Whenever we pin to a specific version in requirements*.in
, we add a comment explaining why we are doing so. You can also specify the version you want to compile by running.
pip-compile --output-file requirements.txt [package_name]==[package_version] --no-emit-index-url
Example of bcrypt
package
pip-compile --output-file requirements.txt bcrypt==3.2.0 --no-emit-index-url
To update a specific dependency
Note : Make sure you check the requirements*.in
file comments before you change the version.
To update a specific package to the latest version use the --upgrade-package
or -P
flag:
pip-compile --output-file requirements.txt --upgrade-package [package_name]
Replace [package_name]
with the dependency name you want from requirements.txt
file.
Whenever we pin to a specific version in requirements*.in
, we add a comment explaining why we are doing so. You can also specify the version you want to upgrade to by running.
pip-compile --output-file requirements.txt --upgrade-package [package_name]==[package_version]
Example of bcrypt
package
pip-compile --output-file requirements.txt --upgrade-package bcrypt==3.2.0
You can combine --upgrade
and --upgrade-package
in one command, to provide constraints on the allowed upgrades. For example to upgrade all packages whilst constraining bcrypt
to the latest version less than 3.0:
pip-compile --output-file requirements.txt --upgrade --upgrade-package 'bcrypt<3.0'
Last updated
Was this helpful?