在Python中从不同的包加载相同的模块

时间:2014-07-02 14:49:58

标签: python import

我有一个包含多个包的包,每个包里面都有一个main.py模块。 在这个模块中有一个register()函数。我需要为每个模块执行此功能!

Plugins
| 
 -A
|   |
|    -main.py -> register()
| 
 -B
   |
    -main.py -> register()

我考虑过探索插件路径并使用importlib加载模块,但是当我使用py2exe打包应用程序时,我收到一条错误消息,指出plugins文件夹在执行时不存在时间。由于它从未以正常方式请求" import ...",py2exe没有在包中包含该目录。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以为您的导入设置别名,例如:

from A import main as mainA
from B import main as mainB

mainA.register()
mainB.register()

...或:

from A.main import register as registerA
from B.main import register as registerB

registerA()
registerB()