[Distutils] Python version in egg name
P.J. Eby
pje at telecommunity.com
Thu Feb 3 23:19:34 CET 2011
At 10:17 AM 2/3/2011 -0500, Matt Chaput wrote:
>When I create an egg the Python version used to create the egg is
>encoded in the egg filename, e.g. Whoosh-1.6.0-py2.7.egg.
>
>Is this version number used to decide what egg a user gets from
>PyPI? I didn't think it was, but a user is seeming to indicate that
>he got different versions based on what version of Python he was using.
>
>Is there a way to set this value to "py2.5" as a configuration
>option, other than running setup.py using the Python 2.5 executable?
>Or not have it be part of the egg filename at all? I'm using Python
>2.7 as my default Python install but I make sure that the code in my
>library is compatible with 2.5+. I've already someone think the
>library is only for a later version of Python because that's what I
>used to build the egg.
>
>Sorry if this is an old question, I looked around but didn't find
>any docs on the subject.
I see you've already solved your issue by using source distributions,
but for the archives I thought I should mention that the reason eggs
are version specific is because they contained compiled .pyc or .pyo
files, and those are only compatible with the Python version that
compiled them.
If you are distributing pure Python code through PyPI, though, there
is usually no reason to ship it in an egg. Eggs were designed as a
binary plugin format for rich application platforms, analagous to
Java "jars" or Eclipse plugins. They're intended for scenarios where
installing from source is overly complex and/or you want to make it
so users can just drop a file into a plugin directory to get
going. (easy_install came later, as a quick hack to automate
building and installing eggs.)
More information about the Distutils-SIG
mailing list