Does pip handle extras_requires from setuptools/distribute based sources? Does pip handle extras_requires from setuptools/distribute based sources? python python

Does pip handle extras_requires from setuptools/distribute based sources?


We use setup.py and pip to manage development dependencies for our packages, though you need a newer version of pip (we're using 1.4.1 currently).

#!/usr/bin/env pythonfrom setuptools import setupfrom myproject import __version__ required = [    'gevent',    'flask',    ...]extras = {    'develop': [        'Fabric',        'nose',    ]}setup(    name="my-project",    version=__version__,    description="My awsome project.",    packages=[        "my_project"    ],    include_package_data=True,    zip_safe=False,    scripts=[        'runmyproject',    ],    install_requires=required,    extras_require=extras,)

To install the package:

$ pip install -e . # only installs "required"

To develop:

$ pip install -e .[develop] # installs develop dependencies


This is suppported since pip 1.1, which was released in February 2012 (one year after this question was asked).


The answer from @aaronfay is completely correct but it may be nice to point out that if you're using zsh that the install command pip install -e .[dev] needs to be replaced by pip install -e ".[dev]".