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

Tarek Ziadé ziade.tarek at gmail.com
Sat Jan 10 18:21:11 CET 2009


On Sat, Jan 10, 2009 at 6:09 PM, Phillip J. Eby <pje at telecommunity.com> wrote:
> 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.)
>

Why we wouldn't add in Distutils a simplified API for this since it is
already taking care of
creating the .egg-info ?

So people don't have to install an extra tool (setutptools) to get the
version of an package
installed by distutils.

A simpler API that pkg_resources's one, something like:

>>> from distutils import get_package_version
>>> get_package_version('SomePackage')


Regards
Tarek
-- 
Tarek Ziadé | Association AfPy | www.afpy.org
Blog FR | http://programmation-python.org
Blog EN | http://tarekziade.wordpress.com/


More information about the Distutils-SIG mailing list