At 09:55 PM 6/5/2005 +0100, Paul Moore wrote:
>On 6/5/05, Phillip J. Eby <[EMAIL PROTECTED]> wrote:
> > At 04:40 PM 6/5/2005 +0100, Paul Moore wrote:
> > >Is there a way of asking EasyInstall "what packages are installed"?
> >
> > Not the command-line script.  However "ls site-packages/*.egg" or "dir
> > site-packages\*.egg" depending on your platform will give you the answer.
>[...]
> > Ah, I see the confusion.  Yes, there's a "registry" of packages installed
> > by EasyInstall.  They're eggs, so they're in directories or files named for
> > the distribution, version, python version, and platform.  So the
> > installation *itself* is the registry, and therefore can't be corrupted or
> > out of date.
>
>I see. On the other hand, there's this .pth file containing the egg
>name, so you can't just add & remove egg files, you do need to go
>through the EasyInstall interface or things get mixed up.

Not really; invalid entries in .pth do nothing but maybe slow down some 
imports.  EasyInstall isn't confused by them at all, and will remove them 
the next time you do an install operation involving a distribution with the 
same name.


>  So there is
>some (relatively minor) level at which things are more "managed" than
>just file copies.

Extremely minor.  :)  Note that the .pth is not a registry; the egg files 
and directories themselves are the registry, so it's a very robust approach.


>And of course, egg files with non-standard names are
>"not in the registry" to some extent.

Well, you can always look at EGG-INFO/PKG-INFO.  The egg runtime system 
only does this under very limited circumstances, for performance 
reasons.  So you could create a tool that would verify eggs' name and 
version from PKG-INFO.

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

Reply via email to