首页 > 解决方案 > python加载在不同文件夹中找到的相同包结构的模块

问题描述

我有以下文件夹结构:

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   

我需要维护这个结构,但能够编写导入或引用的代码:

似乎 python 只会在它遇到的第一个数据文件夹中导入/加载模块。所以在上述情况下,由于在__init__.pyunder data_plugin_main/data/common_dal.py被加载。但是,即使我将其他路径添加到PYTHONPATH, data_plugin_dalanother_plugin_dal无法导入或引用。

有谁知道如何解决这个问题?

谢谢

标签: pythonpycharm

解决方案


如果我理解正确,您可能想尝试在 Eclipse 中自由安装的 Pydev 环境。

每个模块也是具有父模块的目录名称,它们都是父模块,因此在 pydev 中,如果 plugin_2 源需要引用 common_dal.py,则导入看起来像from data_plugin_main import data.common_dal 所以在项目资源管理器中,您将创建一个父模块,它充当超级__init__然后您可以根据需要创建子模块。这有点像 Javaishly 的启发。


推荐阅读