def load_module(self, fullname): if sys.modules.has_key(fullname): mod = sys.modules[fullname] if _memimporter.get_verbose_flag(): sys.stderr.write("import %s # previously loaded from zipfile %s\n" % (fullname, self.archive)) return mod _memimporter.set_find_proc(self.locate_dll_image) try: return zipimport.zipimporter.load_module(self, fullname) except zipimport.ZipImportError: pass initname = "init" + fullname.split(".")[-1] # name of initfunction filename = fullname.replace(".", "\\") if filename in ("pywintypes", "pythoncom"): filename = filename + "%d%d" % sys.version_info[:2] suffixes = ('.dll',) else: suffixes = self._suffixes for s in suffixes: path = filename + s if path in self._files: if _memimporter.get_verbose_flag(): sys.stderr.write("# found %s in zipfile %s\n" % (path, self.archive)) code = self.get_data(path) mod = _memimporter.import_module(code, initname, fullname, path) mod.__file__ = "%s\\%s" % (self.archive, path) mod.__loader__ = self if _memimporter.get_verbose_flag(): sys.stderr.write("import %s # loaded from zipfile %s\n" % (fullname, mod.__file__)) return mod raise zipimport.ZipImportError, "can't find module %s" % fullname
def create_module(self, spec): mod = super().create_module(spec) if mod is None: verbose = _memimporter.get_verbose_flag() fullname = spec.name filename = fullname.replace(".", "\\") suffixes = self._suffixes initname = "PyInit_" + fullname.split(".")[-1] for s in suffixes: path = filename + s if path in self._files: if verbose > 1: sys.stderr.write("# found %s in zipfile %s\n" % (path, self.archive)) mod = _memimporter.import_module(fullname, path, initname, self.get_data, spec) mod.__file__ = "%s\\%s" % (self.archive, path) mod.__loader__ = self mod.__memimported__ = True if verbose: sys.stderr.write("import %s # loaded from zipfile %s\n" % (fullname, mod.__file__)) return mod
def load_module(self, fullname): verbose = _memimporter.get_verbose_flag() if fullname in sys.modules: mod = sys.modules[fullname] if verbose: sys.stderr.write("import %s # previously loaded from zipfile %s\n" % (fullname, self.archive)) return mod try: return zipimport.zipimporter.load_module(self, fullname) except zipimport.ZipImportError: pass if sys.version_info >= (3, 0): # name of initfunction initname = "PyInit_" + fullname.split(".")[-1] else: # name of initfunction initname = "init" + fullname.split(".")[-1] filename = fullname.replace(".", "\\") if filename in ("pywintypes", "pythoncom"): filename = filename + "%d%d" % sys.version_info[:2] suffixes = (".dll",) else: suffixes = self._suffixes for s in suffixes: path = filename + s if path in self._files: if verbose > 1: sys.stderr.write("# found %s in zipfile %s\n" % (path, self.archive)) mod = _memimporter.import_module(fullname, path, initname, self.get_data) mod.__file__ = "%s\\%s" % (self.archive, path) mod.__loader__ = self if verbose: sys.stderr.write("import %s # loaded from zipfile %s\n" % (fullname, mod.__file__)) return mod raise zipimport.ZipImportError("can't find module %s" % fullname)
def load_module(self, fullname): verbose = _memimporter.get_verbose_flag() if fullname in sys.modules: mod = sys.modules[fullname] if verbose: sys.stderr.write( "import %s # previously loaded from zipfile %s\n" % (fullname, self.archive)) return mod try: return zipimport.zipimporter.load_module(self, fullname) except ImportError as err: if verbose: sys.stderr.write("error loading %s: %s\n"% (fullname, err)) if sys.version_info >= (3, 0): # name of initfunction initname = "PyInit_" + fullname.split(".")[-1] else: # name of initfunction initname = "init" + fullname.split(".")[-1] filename = fullname.replace(".", "\\") if filename in ("pywintypes", "pythoncom"): filename = filename + "%d%d" % sys.version_info[:2] suffixes = ('.dll',) else: suffixes = self._suffixes for s in suffixes: path = filename + s if path in self._files: if verbose > 1: sys.stderr.write("# found %s in zipfile %s\n" % (path, self.archive)) spec = importlib.util.find_spec(fullname, path) mod = _memimporter.import_module(fullname, path, initname, self.get_data, spec) mod.__file__ = "%s\\%s" % (self.archive, path) mod.__loader__ = self mod.__memimported__ = True sys.modules[fullname] = mod if verbose: sys.stderr.write("import %s # loaded from zipfile %s\n" % (fullname, mod.__file__)) return mod raise zipimport.ZipImportError("can't find module %s" % fullname) from err