At 02:13 PM 6/4/2006 -0400, Jim Fulton wrote:
If I give easy_install
an ordinary spec (e.g. "demo")
an -f option that points to a local directory containing a bunch of eggs and that is not on sys,path,
ask it to install to some directory (-d), and
use the -m option
it doesn't copy eggs found to the install directory even though the source directory isn't on sys.path. The logic for deciding whether to copy seems to be:
# Installation is also needed if file in tmpdir or is not an
egg install_needed = install_needed or os.path.dirname(download) == tmpdir install_needed = install_needed or not download.endswith ('.egg')
where install_needed starts out as false in this case because the spec is not a url. The second part has no effect because the value if the download variable ends in .egg.
The --always-copy documentation hints that distributions will be copied unless they are found in a directory sys.path, but I see no check.
Why are the eggs not copied?
Because I'm an idiot, that's why. :( That logic predates --find-links being able to support local files without using file:// URLs. At one point, it worked correctly because file:// URLs caused easy_install to copy them to a temporary directory. Later, when I made that more efficient, it broke the install_needed logic. :(
Too bad you didn't find this one *before* I released 0.6b2. Oh well. :)