[Distutils] Way to ask distutils what version of a package is installed?

Phillip J. Eby pje at telecommunity.com
Sat Jan 10 18:09:56 CET 2009


At 04:08 PM 1/9/2009 -0600, ray terrill wrote:
>Is there a way to ask distutils what version of a package is 
>currently installed?  I provided the version number when creating my 
>setup.py, but when this is deployed over 800+ clients, I'd like to 
>have a way to interrogate the system to determine which version is installed.

Distutils has no way to do this, but setuptools does.  You can get 
the version number of "SomePackage" using:

     pkg_resources.require("SomePackage")[0].version

Note that "SomePackage" is the name of the *project* (i.e., what its 
PyPI name and distribution filename are based on), not an individual 
Python module or package or __version__ string within that package.

Also, for this API call to work, "SomePackage" must have been 
installed by setuptools, or by Python 2.5's distutils (which installs 
the metadata setuptools uses for version detection).

(You can consult the pkg_resources and setuptools documentation for 
more details on these matters.)



More information about the Distutils-SIG mailing list