def _getLoader(self, dottedname): """Returns a loader object. """ # if dottedname == 'z3c.testsetup': # import pdb;pdb.set_trace() # This goes wrong because z3c.testsetup cannot be found when running # bin/dependencychecker because it isn't available. So the fallback to # the module name would be better in this case! # I need to review why this get_loader() stuff is used anyway. try: loader = runpy.get_loader(dottedname) except ImportError: loader = None if not loader: parent_dottedname = '.'.join(dottedname.split('.')[:-1]) try: loader = runpy.get_loader(parent_dottedname) except (ImportError, AttributeError): loader = None if not loader: return None return loader
def load_pack(main_file, path, use_globals=True): import runpy if use_globals: environment = {'NPYCK_' : NpyckUtil(path)} else: environment = {} loader = runpy.get_loader(main_file) if loader is None: raise ImportError("No module named " + main_file) code = loader.get_code(main_file) if code is None: raise ImportError("No code object available for " + main_file) if sys.version_info[0] == 2: if sys.version_info[1] == 5: return runpy._run_module_code(code, environment, '__main__', path, loader, True) elif sys.version_info[1] == 6: return runpy._run_module_code(code, environment, '__main__', path, loader, '__main__') print "unsupported interpreter version..."