0

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

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

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

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

4

0 回答 0