Specify extras_require with pip install -e
Important to notice: you should not have whitespaces around or within brackets. I.e. this will work: -e ".[extra1,extra2]"
but this won't: -e ". [extra1, extra2]"
- and even as a row in requirements.txt file, where it is not so obvious. The worst thing about it is that when you have whitespace, extras are just silently ignored.
It may not be obvious for some users, and wasn't for me, so thought to highlight that extra
in the following command
pip install -e ".[extra]"
needs to be replaced by the actual name of the extra requirements.
Example:
You add options.extras_require
section to your setup.cfg
as follows:
[options.extras_require]
test =
pre-commit>=2.10.1,<3.0
pylint>=2.7.2,<3.0
pytest>=6.2.2,<7.0
pytest-pspec>=0.0.4,<1.0
Then you install the test
extra as follows
pip install -e ".[test]"
This should work, per example #6
For remote repos:
pip install -e git+https://github.com/user/project.git#egg=project[extra]
And this for local ones (thanks to @Kurt-Bourbaki):
pip install -e .[extra]
As per @Jurt-Bourbaki:
If you are using zsh
you need to escape square brackets or use quotes:
pip install -e .\[extra\]
# or
pip install -e ".[extra]"
This also works when installing from a whl
file so, for example, you can do:
pip install path/to/myapp-0.0.1-py3-none-any.whl[extra1]
This is very far from clear from the docs, and not particularly intuitive.