1983a88
# HG changeset patch -- Bitbucket.org
1983a88
# Project distribute
1983a88
# URL http://bitbucket.org/tarek/distribute/overview
1983a88
# User David Cournapeau <david@silveregg.co.jp>
1983a88
# Date 1274351504 -32400
1983a88
# Node ID b045d0750c13d83ef577593b8bb267a10e803aca
1983a88
# Parent  ab666b0eacbb5523ffb42a412451550f55347fcc
1983a88
BUG: Fix #142 - easy_install ignore locally installed packages.
1983a88
1983a88
Backport from setuptools 0.6c10.
1983a88
1983a88
--- a/setuptools/command/easy_install.py
1983a88
+++ b/setuptools/command/easy_install.py
1983a88
@@ -565,7 +565,8 @@ Please make the appropriate changes for 
1983a88
 
1983a88
             self.check_editable(spec)
1983a88
             dist = self.package_index.fetch_distribution(
1983a88
-                spec, tmpdir, self.upgrade, self.editable, not self.always_copy
1983a88
+                spec, tmpdir, self.upgrade, self.editable, not self.always_copy,
1983a88
+                self.local_index
1983a88
             )
1983a88
 
1983a88
             if dist is None:
1983a88
1983a88
--- a/setuptools/package_index.py
1983a88
+++ b/setuptools/package_index.py
1983a88
@@ -418,7 +418,8 @@ class PackageIndex(Environment):
1983a88
 
1983a88
 
1983a88
     def fetch_distribution(self,
1983a88
-        requirement, tmpdir, force_scan=False, source=False, develop_ok=False
1983a88
+        requirement, tmpdir, force_scan=False, source=False, develop_ok=False,
1983a88
+        local_index=None
1983a88
     ):
1983a88
         """Obtain a distribution suitable for fulfilling `requirement`
1983a88
 
1983a88
@@ -440,11 +441,14 @@ class PackageIndex(Environment):
1983a88
         # process a Requirement
1983a88
         self.info("Searching for %s", requirement)
1983a88
         skipped = {}
1983a88
+        dist = None
1983a88
 
1983a88
-        def find(req):
1983a88
+        def find(req, env=None):
1983a88
+            if env is None:
1983a88
+                env = self
1983a88
             # Find a matching distribution; may be called more than once
1983a88
 
1983a88
-            for dist in self[req.key]:
1983a88
+            for dist in env[req.key]:
1983a88
 
1983a88
                 if dist.precedence==DEVELOP_DIST and not develop_ok:
1983a88
                     if dist not in skipped:
1983a88
@@ -461,8 +465,11 @@ class PackageIndex(Environment):
1983a88
         if force_scan:
1983a88
             self.prescan()
1983a88
             self.find_packages(requirement)
1983a88
+            dist = find(requirement)
1983a88
 
1983a88
-        dist = find(requirement)
1983a88
+        if local_index is not None:
1983a88
+            dist = dist or find(requirement, local_index)
1983a88
+
1983a88
         if dist is None and self.to_scan is not None:
1983a88
             self.prescan()
1983a88
             dist = find(requirement)