aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkg_resources/__init__.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index 1b8d02f5..33b3f56c 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -1983,12 +1983,20 @@ def find_on_path(importer, path_item, only=False):
)
else:
# scan for .egg and .egg-info in directory
- for entry in os.listdir(path_item):
+
+ path_item_entries = os.listdir(path_item)
+ # Reverse so we find the newest version of a distribution,
+ path_item_entries.sort()
+ path_item_entries.reverse()
+ for entry in path_item_entries:
lower = entry.lower()
if lower.endswith('.egg-info') or lower.endswith('.dist-info'):
fullpath = os.path.join(path_item, entry)
if os.path.isdir(fullpath):
# egg-info directory, allow getting metadata
+ if len(os.listdir(fullpath)) == 0:
+ # Empty egg directory, skip.
+ continue
metadata = PathMetadata(path_item, fullpath)
else:
metadata = FileMetadata(fullpath)