Python的
import机制已经提供了实现所需功能所需的所有工具。您可以安装各种
import挂钩,以支持所需的功能。
特别是,您可能会发现安装元路径挂钩很方便,该挂钩可搜索“已签名的模块”并返回一个
Loader能够从此已签名的格式执行导入的。
用于签名插件的一种非常简单方便的格式是
zip包含以下内容的存档:
- 以模块/软件包形式的插件代码
- 上面代码的PGP签名
通过这种方式:
- 您的加载程序应解压缩拉链,并检查签名。如果匹配,则可以安全地加载该插件;如果不匹配,则应要求用户信任该插件(否则,请中止)
- 如果用户想要修改插件,则只需将
zip
存档解压缩并按自己的意愿进行修改即可。 - 从
zip
档案库导入已在zipimport
模块中实现。这意味着您不必从头开始重写加载程序。
实际上,如果您想将钩子的代码减少到最少,您只需要验证签名,然后将
zip归档文件的路径添加到其中
sys.path,因为python
zip即使没有显式使用python也已经处理了从归档文件的导入
zipimport。
使用这种设计,您只需要安装这些挂钩,然后就可以
import将插件当作普通模块使用,并且验证等操作将自动完成。



