diff options
author | William Deegan <bill@baddogconsulting.com> | 2016-05-23 10:00:43 -0700 |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2016-05-23 10:00:43 -0700 |
commit | 561eda349061019df9c8aa904de62896b12472c0 (patch) | |
tree | e47a01a86d0f782277ba672c0730ad9a80360ed2 | |
parent | 2b20141f5bc6fb7aedd9a24e4c8079e82d52d260 (diff) | |
download | scons-git-561eda349061019df9c8aa904de62896b12472c0.tar.gz |
use old tool loading code for py2, and new code (not quite working yet) for py3
-rw-r--r-- | src/engine/SCons/Tool/__init__.py | 101 |
1 files changed, 53 insertions, 48 deletions
diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py index 159005310..d75d7caea 100644 --- a/src/engine/SCons/Tool/__init__.py +++ b/src/engine/SCons/Tool/__init__.py @@ -115,57 +115,62 @@ class Tool(object): oldpythonpath = sys.path sys.path = self.toolpath + sys.path - try: - # Try site_tools first - return importlib.import_module(self.name) - except ImportError as e: - # Then try modules in main distribution + + if False and sys.version_info[0] < 3: + # Py 2 code try: - return importlib.import_module('SCons.Tool.'+self.name) + try: + file, path, desc = imp.find_module(self.name, self.toolpath) + try: + return imp.load_module(self.name, file, path, desc) + + finally: + if file: + file.close() + except ImportError as e: + if str(e)!="No module named %s"%self.name: + raise SCons.Errors.EnvironmentError(e) + try: + import zipimport + except ImportError: + pass + else: + for aPath in self.toolpath: + try: + importer = zipimport.zipimporter(aPath) + return importer.load_module(self.name) + except ImportError as e: + pass + finally: + sys.path = oldpythonpath + else: + # Py 3 code + try: + # Try site_tools first + return importlib.import_module(self.name) except ImportError as e: - if str(e) != "No module named %s" % self.name: - raise SCons.Errors.EnvironmentError(e) + # Then try modules in main distribution try: - import zipimport - except ImportError: - pass - else: - for aPath in self.toolpath: - try: - importer = zipimport.zipimporter(aPath) - return importer.load_module(self.name) - except ImportError as e: - pass - - finally: - sys.path = oldpythonpath - - # old code - # try: - # try: - # file, path, desc = imp.find_module(self.name, self.toolpath) - # try: - # return imp.load_module(self.name, file, path, desc) - # - # finally: - # if file: - # file.close() - # except ImportError as e: - # if str(e)!="No module named %s"%self.name: - # raise SCons.Errors.EnvironmentError(e) - # try: - # import zipimport - # except ImportError: - # pass - # else: - # for aPath in self.toolpath: - # try: - # importer = zipimport.zipimporter(aPath) - # return importer.load_module(self.name) - # except ImportError as e: - # pass - # finally: - # sys.path = oldpythonpath + return importlib.import_module('SCons.Tool.'+self.name) + except ImportError as e: + if str(e) != "No module named %s" % self.name: + raise SCons.Errors.EnvironmentError(e) + try: + import zipimport + except ImportError: + pass + else: + for aPath in self.toolpath: + try: + importer = zipimport.zipimporter(aPath) + return importer.load_module(self.name) + except ImportError as e: + pass + + finally: + sys.path = oldpythonpath + + full_name = 'SCons.Tool.' + self.name try: |