diff options
author | Jan Pokorný <jpokorny@redhat.com> | 2015-01-13 13:24:46 +0100 |
---|---|---|
committer | Jan Pokorný <jpokorny@redhat.com> | 2015-01-14 09:14:53 +0100 |
commit | 4a81c51f425db8fa9029c6e1a89dd6d6f8de407a (patch) | |
tree | 268c0ee31643df7361b813cf51e3548239ea99cd /__root__ | |
parent | 381ccf813a49e9c07f48a0bfdc5134b3c0e9a26f (diff) | |
download | clufter-4a81c51f425db8fa9029c6e1a89dd6d6f8de407a.tar.gz clufter-4a81c51f425db8fa9029c6e1a89dd6d6f8de407a.tar.xz clufter-4a81c51f425db8fa9029c6e1a89dd6d6f8de407a.zip |
setup: handle case of local pkg aliasing w/ system-wide
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
Diffstat (limited to '__root__')
-rw-r--r-- | __root__/setup.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/__root__/setup.py b/__root__/setup.py index 1613ec9..6a8df6b 100644 --- a/__root__/setup.py +++ b/__root__/setup.py @@ -21,7 +21,7 @@ from os.path import (join as path_join, realpath as path_real, isabs as path_isabs, isdir as path_isdir, isfile as path_isfile, splitext as path_splitext) from shutil import copy, copymode -from sys import prefix as sys_prefix +from sys import modules as sys_modules, prefix as sys_prefix from distutils.cmd import Command from distutils.errors import DistutilsSetupError @@ -449,13 +449,19 @@ def setup_pkg_prepare(pkg_name, pkg_prepare_options=()): self_discovery_plan = ['__project__'] while True: - pkg = {} - project = self_discovery_plan.pop() + pkg, backup_mod, project = {}, None, self_discovery_plan.pop() try: # XXX check relative import - pkg = __import__(project, globals=pkg, level=1) + backup_mod = sys_modules.get(project) + if backup_mod: + if not hasattr(backup_mod, '__path__'): # not the case for builtins + continue + backup_mod = sys_modules.pop(project) + pkg = __import__(project, globals=pkg) break except ImportError: + if backup_mod: + sys_modules[project] = backup_mod if project == '__project__': from glob import iglob self_discovery_plan.extend(p[:-len('.egg-info')].split('-', 1)[0] |