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

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to