最近开发应用遇到一个需求:打包后的应用加载外部Python模块
使用常用import方式导入模块,在使用pyinstaller打包后,模块也一起打包进去了,这样在我外部模块代码修改后,还需要重新打包。
为了实现这个需求,我使用了zipimport从ZIP归档中加载Python模块
示例代码如下:
zipfile = "data_factory.zip"
importer = zipimport.zipimporter(zipfile)
factory = importer.load_module('data_factory')
data_factory.zip的结构如下图所示:
此时,代码中的对象factory就是压缩包中data_factory.py这个模块,通过 dir(factory) 可以查看其所有的属性和方法。