[Distutils] Single version number
Gary Poster
gary.poster at canonical.com
Fri Jul 10 16:19:56 CEST 2009
On Jul 10, 2009, at 9:24 AM, Barry Warsaw wrote:
> On Jul 10, 2009, at 8:58 AM, Marius Gedminas wrote:
>
>> What do people use to avoid repeating the version number both in the
>> setup.py as well as in application/library code, when the
>> application/library wants to know its own version number?
>>
>> I've seen several options:
>>
>> 1) put __version__ = '4.2' in yourpackage/__init__.py, have setup.py
>> do from yourpackage import __version__ and pass that to setup()
>
> This is generally what I do and it seems to work pretty well for
> me. I remember talking with Gary Poster about some problems with
> this, related to our open source lazr packages, but I don't recall
> the details.
Basically, this means that your setup.py has to be able to import your
package's __init__.py without any of the dependencies.
If your __init__.py only has a __version__ then this is fine.
However, if you want your __init__ to reexport something to avoid
clients having to do foo.foo.Foo-style imports from your package, or
if you want to put any other code in your __init__ that might need
dependencies, this breaks.
Gary
More information about the Distutils-SIG
mailing list