[Distutils] PEP 426 (Metadata 2.0) - Requires-Dist and setuptools/distribute

PJ Eby pje at telecommunity.com
Mon Mar 4 21:55:18 CET 2013


On Mon, Mar 4, 2013 at 2:41 PM, Paul Moore <p.f.moore at gmail.com> wrote:
> In thinking about how virtualenv would describe the packages it wants
> to preload in PEP 426 metadata form, it occurred to me that there are
> scenarios with setuptools and distribute where it's not obvious how to
> state the requirement you want. Specifically, if you want to install
> setuptools if it is present, but if not fall back to distribute (for
> example, if you have a local package repository and no access to PyPI,
> but setuptools may or may not be present).
>
> I appreciate this is a fairly obscure case. It comes up with
> virtualenv because virtualenv uses locally-available distributions by
> default, only going to PyPI if it has to. So in that case (depending
> on user options) I could genuinely want to pick whichever of
> setuptools or distribute is present, and I don't care which, as it
> saves a network lookup.
>
> I'm actually using the distlib locator API, not the PEP 426 fields
> themselves, but (a) distlib locators use the same syntax, as far as
> I'm aware, and (b) I think the Requires-Dist syntax makes a good
> language for specifying distribution requirements in any context, so
> I'd hate to end up with 2 slightly-different forms.
>
> If the answer is that the spec doesn't support that, then fine. I'll
> have to manually code for it. But I'd hate to write code I didn't need
> to :-)

This is a good point; people have been wanting setuptools to support
alternate dependencies (i.e., I need this *or* that) for a long time,
and not just for that particular use case.


More information about the Distutils-SIG mailing list