Sam Hooke

Configure Python package to install dependencies only for specific combinations of Python version and platform

PEP 508 introduced environment markers which let you specify conditions for whether a package should be installed. These can be used inside the install_requires or setup_requires argument in setup.py, or within the requirements.txt.

The most simple example is:

argparse; python_version < "2.7"

This would only install argparse if the Python version is lower than 2.7.

However PEP 508 details many more enivonment markers, and specifies the grammar for combining these. For example:

baz; python_version >= "3.6" and platform_system == "Linux"

This would only install baz if the Python version is greater than or equal to 3.6, and the system is Linux.

These are rough notes that vary greatly in quality and length, but prove useful to me, and hopefully to you too!

← Previous: Python click: allow user to retry input upon validation failure
Next: Python abi3 wheels →