zipimport对后缀名不是.zip的文件也是支持的,比如.npkg文件,便于商业代码的保密。
首先要生成压缩文件的zipimporter,设置查询路径:
mod_path = os.path.join(self.dirparent, self.pkgname)
self.zip_importer = zipimport.zipimporter(mod_path)#压缩文件的绝对位置或相对位置
sys.path.insert(0, mod_path)
然后就可以用load_moudle加载:
m = self.package.zip_importer.load_module(name)#name是在压缩包里的 相对路径,
比如mod_path是c/test.npkg ,name是a/b,即加载test.npkg 例a/b这个模块