aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/package_index.py
diff options
context:
space:
mode:
authorDavid Cournapeau <david@silveregg.co.jp>2010-05-20 19:31:44 +0900
committerDavid Cournapeau <david@silveregg.co.jp>2010-05-20 19:31:44 +0900
commit72c44b3258e02b56ac106f878a64eca726a6f01f (patch)
tree5747a06993c22ee0cb5639978242718f8307bf97 /setuptools/package_index.py
parent0c8f3ad99a9b8d4a11e32ecf841df428a1cc7fa2 (diff)
downloadexternal_python_setuptools-72c44b3258e02b56ac106f878a64eca726a6f01f.tar.gz
external_python_setuptools-72c44b3258e02b56ac106f878a64eca726a6f01f.tar.bz2
external_python_setuptools-72c44b3258e02b56ac106f878a64eca726a6f01f.zip
BUG: Fix #142 - easy_install ignore locally installed packages.
Backport from setuptools 0.6c10. --HG-- branch : distribute extra : rebase_source : d06cbdae906a725410d4993d9e1a631e2acac345
Diffstat (limited to 'setuptools/package_index.py')
-rwxr-xr-xsetuptools/package_index.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/setuptools/package_index.py b/setuptools/package_index.py
index 1c50d86f..67e9f6ae 100755
--- a/setuptools/package_index.py
+++ b/setuptools/package_index.py
@@ -418,7 +418,8 @@ class PackageIndex(Environment):
def fetch_distribution(self,
- requirement, tmpdir, force_scan=False, source=False, develop_ok=False
+ requirement, tmpdir, force_scan=False, source=False, develop_ok=False,
+ local_index=None
):
"""Obtain a distribution suitable for fulfilling `requirement`
@@ -440,11 +441,14 @@ class PackageIndex(Environment):
# process a Requirement
self.info("Searching for %s", requirement)
skipped = {}
+ dist = None
- def find(req):
+ def find(req, env=None):
+ if env is None:
+ env = self
# Find a matching distribution; may be called more than once
- for dist in self[req.key]:
+ for dist in env[req.key]:
if dist.precedence==DEVELOP_DIST and not develop_ok:
if dist not in skipped:
@@ -461,8 +465,11 @@ class PackageIndex(Environment):
if force_scan:
self.prescan()
self.find_packages(requirement)
+ dist = find(requirement)
+
+ if local_index is not None:
+ dist = dist or find(requirement, local_index)
- dist = find(requirement)
if dist is None and self.to_scan is not None:
self.prescan()
dist = find(requirement)