[Distutils] Single version number

Floris Bruynooghe floris.bruynooghe at gmail.com
Fri Jul 10 22:00:25 CEST 2009


On Fri, Jul 10, 2009 at 10:19:56AM -0400, Gary Poster wrote:
>
> 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.

My __init__.py does "from _version import version as __version__" to
solve this problem, setup.py then imports _version.

Regards
Floris

-- 
Debian GNU/Linux -- The Power of Freedom
www.debian.org | www.gnu.org | www.kernel.org


More information about the Distutils-SIG mailing list