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

Daniel Holth dholth at gmail.com
Mon Mar 4 21:00:30 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 :-)
> Paul.

We do have Provides-Dist, although the best way to implement it is an
open question.

More information about the Distutils-SIG mailing list