[Distutils] Determining system packages

Rob Cakebread cakebread at gmail.com
Fri Apr 13 20:51:27 CEST 2007


On 4/13/07, Phillip J. Eby <pje at telecommunity.com> wrote:
>
> You mean 'get_python_lib(standard_lib=1)'?
>

That's much better, thanks.

>
> System packages are just develop eggs installed in "system"
> locations.  System locations may be Python-defined or OS-defined.  For
> example, some distros have non-standard directory layouts, such  that there
> is both a "/usr/lib/python2.x/site-packages" and a
> "/usr/local/lib/python2.x/site-packages", and *either* could contain system
> packages.
>

I think I'll wait till I finish the plugin system for package mangers
before I try
to guess if its a system package then. If a package manager has a manifest
for Python itself I'll be able to determine that wsigref for instance
is "owned" by
the Python package and therefore a system package.

> There is a trick you could use to identify "develop" distributions,
> though...  if there is a "SOURCES.txt" metadata file associated with an
> egg, you can look for a setup.py in a parent directory whose directory
> layout corresponds to that described by the contents of SOURCES.txt.  This
> could *potentially* produce a false positive, though, if the package in
> question puts all its modules in the project root and doesn't have any
> other files besides setup.py listed in the project root.
>
> (The long-term plan for 0.7 is that packages that are actually "installed"
> will have some kind of installation manifest ala PEP 262.)
>
> By the way, under Python 2.5, packages installed by the distutils include
> an .egg-info *file*, so that is a giveaway that a package was installed
> using distutils (and maybe a system packaging tool), and is definitely
> *not* a "develop" package.
>

Ok, great, thanks. I'll use those methods to check also.

Rob


More information about the Distutils-SIG mailing list