[Distutils] setuptools: extras_require

Phillip J. Eby pje at telecommunity.com
Wed Jul 13 17:52:12 CEST 2005


At 02:27 AM 7/13/2005 -0500, Ian Bicking wrote:
>I can't see any way to get extras_require to be installed, unless some
>other package indicates an extra feature in the package that needs to be
>supported.
>
>For example, if you want HTTP support in Paste, you can install
>WSGIUtils.  But this isn't required.  How can I get WSGIUtils installed?

Assuming the "extra" in Paste is "HTTP", you would use:

     easy_install Paste[HTTP]

Even if Paste itself is already installed, this will ensure that anything 
in extras_require['HTTP'] gets installed too.


>   Or, more specifically, there's a bunch of examples distributed in the
>Paste source distribution; these examples require lots of extra
>software, even if Paste doesn't.  How can I easily get all the examples
>working?

Define an "examples" extra, then use:

     easy_install Paste[examples]

Note, by the way, that if the examples need the HTTP extra, then you can 
specify that like this:

      setup(
          ...
          extras_require = dict(
              HTTP = ['WSGIUtils'],
              examples = ['Paste[HTTP]', ...other stuff here...],
          )
      )

That is, it's okay to have cyclical dependencies; the dependency resolution 
mechanism is smart enough to figure out what to do.



More information about the Distutils-SIG mailing list