[Distutils] Q about best practices now (or near future)

PJ Eby pje at telecommunity.com
Fri Jul 19 17:47:04 CEST 2013

On Fri, Jul 19, 2013 at 9:10 AM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> Right, I think the reasonable near term solutions are for pip to either:
> 1. generate zc.buildout style wrappers with absolute paths to avoid
> the implied runtime dependency
> 2. interpret use of script entry points as an implied dependency on
> setuptools and install it even if not otherwise requested
> Either way, pip would need to do something about its *own* command
> line script, which heavily favours option 1

Option 1 also would address some or all of the startup performance complaint.

It occurs to me that it might actually be a good idea *not* to put the
script wrappers in the standard entry points file, even if that's what
setuptools does right now: if lots of packages use that approach,
it'll slow down the effective indexing for code that's scanning
multiple packages for something like a sqlalchemy adapter.

(Alternately, we could use something like
'exports-some.group.name.json' so that each export group is a separate
file; this would keep scripts separate from everything else, and
optimize plugin searches falling in a particular group.  In fact, the
files needn't have any contents; it'd be okay to just parse the main
.json for any distribution that has exports in the group you're
looking for.  i.e., the real purpose of the separation of entry points
was always just to avoid loading metadata for distributions that don't
have the kind of exports you're looking for.  In the old world, few
distributions exported anything, so just identifying whether a
distribution had exports was sufficient.  In the new world, more and
more distributions over time will have some kind of export, so knowing
*which* exports they have will become more important.)

More information about the Distutils-SIG mailing list