summaryrefslogtreecommitdiff
path: root/pkg_resources
diff options
context:
space:
mode:
Diffstat (limited to 'pkg_resources')
-rw-r--r--pkg_resources/__init__.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index a93a3da7..4208c4ec 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -2066,6 +2066,15 @@ def _rebuild_mod_path(orig_path, package_name, module):
"""
sys_path = [_normalize_cached(p) for p in sys.path]
+ def safe_sys_path_index(entry):
+ """
+ Workaround for #520 and #513.
+ """
+ try:
+ return sys_path.index(entry)
+ except ValueError:
+ return float('inf')
+
def position_in_sys_path(path):
"""
Return the ordinal of the path based on its position in sys.path
@@ -2073,7 +2082,7 @@ def _rebuild_mod_path(orig_path, package_name, module):
path_parts = path.split(os.sep)
module_parts = package_name.count('.') + 1
parts = path_parts[:-module_parts]
- return sys_path.index(_normalize_cached(os.sep.join(parts)))
+ return safe_sys_path_index(_normalize_cached(os.sep.join(parts)))
orig_path.sort(key=position_in_sys_path)
module.__path__[:] = [_normalize_cached(p) for p in orig_path]