[Python-Dev] Packaging and binary distributions
p.f.moore at gmail.com
Mon Oct 31 20:55:28 CET 2011
On 31 October 2011 18:36, Ned Deily <nad at acm.org> wrote:
> In article
> <CACac1F_V6_6+uG9qfqBJtuokz0HXO53hsXX3Ptap=O8+pxTpJA at mail.gmail.com>,
> Paul Moore <p.f.moore at gmail.com> wrote:
>> On 30 October 2011 18:04, Ned Deily <nad at acm.org> wrote:
>> > Has anyone analyzed the current packages on PyPI to see how many provide
>> > binary distributions and in what format?
>> A very quick and dirty check:
>> dmg: 5
>> rpm: 12
>> msi: 23
>> dumb: 132
>> wininst: 364
>> egg: 2570
>> That's number of packages with binary distributions in that format.
>> It's hard to be sure about egg distributions, as many of these could
>> be pure-python (there's no way I know, from the PyPI metadata, to
>> check this).
> Thanks. If you have access to the egg file name, you should be able to
> tell. AFAIK, eggs with extension modules include the Distutils platform
> name in the file name preceded by a '-', so '-linux', '-win32',
> '-macosx' for the main ones. Pure python eggs do not contain a platform
> name. http://pypi.python.org/pypi/pyinterval/ is a random example of
> the former.
2502 architecture independent
About 5%. The numbers don't quite add up, so there's some funnies in
there (possibly bad data that I'm not handling well) but it gives an
Counts by architecture:
Most of the 1-counts are bad data in some form.
I'm not sure what this proves, to be honest, but what I take from it is:
- Nearly all binary distributions are for Windows
- Architecture-neutral eggs are common (but not relevant here as
packaging can install from source with these)
- Ignoring architecture-neutral eggs, most popular formats are
wininst, egg, dumb(!!!) and msi
- Even the most popular binary format (wininst) only accounts for 2%
of all packages.
Having said all of this, there are two major caveats I'd include:
- Not everything is on PyPI.
- This analysis ignores relative importance. It's hard to claim that
numpy is no more significant than, say, "Products.CMFDynamicViewFTI"
(whatever that might be - I picked it at random, so apologies to the
More information about the Python-Dev