我有以下文件夹结构:
data_plugin_main/
/common
__init__.py
utils.py
/data
__init__.py
commmon_dal.py
plugin1
/data
__init__.py
data_plugin_dal.py
plugin2
/data
__init__.py
another_plugin_dal.py
我需要维护这个结构,但能够编写导入或可以引用的代码:
- data.common_dal
- data.data_plugin_dal
- data.another_plugin_dal
似乎 python 只会在它遇到的第一个数据文件夹中导入/加载模块。所以在上面的例子中,由于data_plugin_main/data/
下有__init__.py
,所以common_dal.py
被加载。但是,即使我将其他路径添加到 PYTHONPATH
,data_plugin_dal
和 another_plugin_dal
也无法导入或引用。
有人知道如何解决这个问题吗?
谢谢
最佳答案
如果我没理解错的话,你可能想尝试在 Eclipse 中免费安装的 Pydev 环境。
每个模块也是带有父模块的目录名称,因此在 pydev 中,如果plugin_2源需要引用common_dal.py,则导入看起来像from data_plugin_main import data.common_dal
因此,在项目资源管理器中,您将创建一个充当 super __init__
的父模块,然后您可以根据需要创建子模块。它有点像 Javaishly 的灵感。
关于python加载在不同文件夹中找到的相同包结构的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60012667/