diff options
-rwxr-xr-x | EasyInstall.txt | 3 | ||||
-rwxr-xr-x | setuptools/command/easy_install.py | 22 |
2 files changed, 14 insertions, 11 deletions
diff --git a/EasyInstall.txt b/EasyInstall.txt index 028d1fe7..f1271647 100755 --- a/EasyInstall.txt +++ b/EasyInstall.txt @@ -1095,6 +1095,9 @@ set, if you haven't already got this set up on your machine. Release Notes/Change History ============================ +0.6b3 + * Fix local --find-links eggs not being copied except with --always-copy. + 0.6b2 * Don't install or update a ``site.py`` patch when installing to a ``PYTHONPATH`` directory with ``--multi-version``, unless an diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py index 1bbe7b5c..3a244470 100755 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py @@ -452,12 +452,22 @@ Please make the appropriate changes for your system and try again. def install_item(self, spec, download, tmpdir, deps, install_needed=False): # Installation is also needed if file in tmpdir or is not an egg + install_needed = install_needed or self.always_copy install_needed = install_needed or os.path.dirname(download) == tmpdir install_needed = install_needed or not download.endswith('.egg') + if spec and not install_needed: + # at this point, we know it's a local .egg, we just don't know if + # it's already installed. + for dist in self.local_index[spec.project_name]: + if dist.location==download: + break + else: + install_needed = True # it's not in the local index + log.info("Processing %s", os.path.basename(download)) - if install_needed or self.always_copy: + if install_needed: dists = self.install_eggs(spec, download, tmpdir) for dist in dists: self.process_distribution(spec, dist, deps) @@ -480,16 +490,6 @@ Please make the appropriate changes for your system and try again. - - - - - - - - - - def process_distribution(self, requirement, dist, deps=True, *info): self.update_pth(dist) self.package_index.add(dist) |