编写一个PEP-302导入钩子,知道哪个模块正在导入哪个模块

时间:2012-12-02 15:44:42

标签: python import-hooks

假设我有模块foo.pybar.py,并且在代码中都有import baz语句。

我想编写一个导入钩子,我可以插入sys.meta_path,知道baz是从foo还是从bar导入。

我之所以这样做是因为我希望我的应用程序能够加载插件并保持其依赖关系,这是我可以通过在Java中使用单独的ClassLoader实例的方式。这样,插件foo和插件bar就可以捆绑不同版本的库baz而不会发生冲突。我的意思是通过改变导入机制来为import baz语句生成单独的模块,具体取决于该语句的来源。

如果有人有更好的方法,请随时在答案中提出建议。

0 个答案:

没有答案