[Distutils] setuptools: extras_require
ianb at colorstudy.com
Wed Jul 13 20:02:39 CEST 2005
Phillip J. Eby wrote:
>> 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
> 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:
> 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.
Cool... now I'm thinking about how I should distribute the examples.
They are already part of the source distribution (i.e., in the MANIFEST
but not the packages). They aren't a package at all, really, more like
data (even the .py files).
I'm not sure what I should be shooting for. This is okay:
But this doesn't actually install the examples themselves, just the
prerequisites for them. I can't figure out how example installation
would work, since examples really aren't installed globally in any way,
and shouldn't be eggified.
The examples could be separated into a separate package, but I don't
think that would help.
If easy_install.py had a develop option that would do it. Like:
easy_install.py --develop Paste
Where --develop downloads the package (not the egg), and does "setup.py
develop" or something. Maybe, kind of -- at least, you'd end up with
the entire Paste source package, but the prereqs would be installed
normally. And I guess if you didn't run the first command, all the
prereqs would be installed in development? I don't know. The same
issues perhaps apply to documentation (though personally documentation
matters much less to me, since it can be published directly to the web).
Ian Bicking / ianb at colorstudy.com / http://blog.ianbicking.org
More information about the Distutils-SIG