[Distutils] Packages listed in Easy-Install.pth
P.J. Eby
pje at telecommunity.com
Tue Mar 10 07:17:07 CET 2009
At 11:19 PM 3/9/2009 -0400, David Lyon wrote:
>What I want to do is use these in a list of installed packages. And then
>later provide for deinstallation. I'm thinking of parsing this file to read
>all the package names..
>
>My question is is there any way to do the same thing with setuptools?
http://peak.telecommunity.com/DevCenter/PkgResources#workingset-objects
You can simply iterate over pkg_resources.working_set to obtain
Distribution objects for all eggs on sys.path -- that will give you
all *activated* packages (i.e., ones listed in .pth files or
otherwise explicitly on sys.path).
If you want all *installed* packages (which may not be on sys.path,
but are still physically present in a directory on sys.path), you
want an Environment object instead:
http://peak.telecommunity.com/DevCenter/PkgResources#environment-objects
And to remove a package from the .pth file, you can use "easy_install
-mxNd targetdir project==version" -- this will remove the named
project from the easy-install.pth file in targetdir. (The -m takes
it out, the -x means don't reinstall scripts, the -N means don't
install dependencies, and the -d targetdir specifies where the .pth file is.)
More information about the Distutils-SIG
mailing list