[Distutils] Anyone stuck with easy_install / has .pth file issues -- this is for you!

P.J. Eby pje at telecommunity.com
Mon May 4 22:46:14 CEST 2009


At 01:11 PM 5/4/2009 -0700, Garrett Cooper wrote:
>You're right -- it doesn't protect against the following (><):
>
>/full/path/to/package.egg
>./package.egg

By duplicates, I meant 'package-1.0.egg' and 'package-1.1.egg', not 
alternate paths to the same file.

(As for the '.' replacement, you might want to look at what I said 
more closely.)


>BTW, wasn't -m deprecated?

No.

>  I mean, -m's `delivered' functionality
>doesn't even work

You'll need to be more specific there: I don't know what you're 
saying "doesn't work", let alone *how*, what behavior you expect, or 
what you're seeing instead.


>because python stores all loaded package / module
>entries in .pth files as keys in a dictionary _anyhow_

I also don't know what you mean here.  .pth file contents are added 
to sys.path, not a dictionary.  Unless you're talking about 
sys.path_importer_cache or something, in which case I still don't see 
the connection to anything else at hand.


>I have no idea how -xN factor into this though

The original docs said to use -m before uninstalling, but they really 
should say -mxN to exclude scripts and avoid installing (or 
uninstalling!) dependencies.  The docs are broken (or at any rate, 
suboptimal) and should be fixed.


>- The duplicates erasure was just gravy, and purely an exercise on my
>part getting used to set's in python. The real point was the missing
>package in .pth functionality, caused by easy_install / setuptools
>lacking proper MP-safe logic.

I'm going to guess that by "MP" you mean multiprocessing, in which 
case I would say, yes, easy_install assumes that you are not running 
multiple simultaneous installations to the same directory.



More information about the Distutils-SIG mailing list