I have package "A" with a setup.py and an extras_requires line like:
extras_require = {
'ssh': ['paramiko'],
},
And a package "B" that depends on util:
install_requires = ['A[ssh]']
If I run python setup.py install
on package B, which uses setuptools.command.easy_install
under the hood, the extras_requires
is correctly resolved, and paramiko is installed.
However, if I run pip /path/to/B
or pip hxxp://.../b-version.tar.gz
, package A is installed, but paramiko is not.
Because pip "installs from source", I'm not quite sure why this isn't working. It should be invoking the setup.py of B, then resolving & installing dependencies of both B and A.
Is this possible with pip?
This is suppported since pip 1.1, which was released in February 2012 (one year after this question was asked).
We use
setup.py
andpip
to manage development dependencies for our packages, though you need a newer version ofpip
(we're using 1.4.1 currently).To install the package:
To develop: