python加载在不同文件夹中找到的相同包结构的模块

标签 python pycharm

我有以下文件夹结构:

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被加载。但是,即使我将其他路径添加到 PYTHONPATHdata_plugin_dalanother_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/

相关文章:

python - Numpy中的均方误差?

python - Python : How to match a word pattern, 中的正则表达式如果前面没有另一个可变长度的单词?

python - PyCharm 找不到存在的 Flask 模板

intellij-idea - IntelliJ IDEA 2018.3 工具栏添加 "Undo"/"Redo"等

python - 为什么 Pycharm 生成 .bak 文件

pycharm - 尝试将 mypy 添加到 PyCharm

PyCharm 中的重构 : How to extract a method?

python - 将单位添加到 QLCDNumber

Python 扩展在处理大型列表时创建无效指针

python - Pandas Merge (pd.merge) 如何设置索引和join