Python 链接导入子模块的正确方法是什么?
假设我有一个具有以下结构的项目:Python 链接导入子模块的正确方法是什么?,python,python-3.x,Python,Python 3.x,假设我有一个具有以下结构的项目: ├── modules │ ├── modulea.py │ └── moduleb.py └── program.py program.py是主可执行文件,它像这样导入模块a from modules import modulea 在modulea中,我想从moduleb导入一些东西。现在,从逻辑上讲,我应该在同一个目录中执行导入模块b。但这将产生ModuleNotFoundError:没有名为'moduleb'的模块 所以为了让这个链式导入工作,
├── modules
│ ├── modulea.py
│ └── moduleb.py
└── program.py
program.py是主可执行文件,它像这样导入模块a
from modules import modulea
在modulea中,我想从moduleb导入一些东西。现在,从逻辑上讲,我应该在同一个目录中执行导入模块b。但这将产生ModuleNotFoundError:没有名为'moduleb'的模块
所以为了让这个链式导入工作,我必须从modules import moduleb执行。这激怒了IDE,因为周围没有“modules”目录,或者从中没有。导入模块B
,该模块会改变pylint
虽然上述两种方法都有效,但它们让人感到困惑和不和谐,因为人们假设导入将从上面的一个层次发生,而在似乎不必要的地方使用相对导入
有没有办法更优雅地处理这件事
谢谢。您可以通过在模块中创建init\uuuuuuuuuupy
文件,使其成为python包
├── modules
│ ├── __init__.py
| ├── modulea.py
│ └── moduleb.py
└── program.py
然后使用modules.moduleb在modulea
中导入一些对象,您可以通过在其中创建\uu init\uuuuuuuuuupy
文件将模块制作成python包
├── modules
│ ├── __init__.py
| ├── modulea.py
│ └── moduleb.py
└── program.py
然后使用模块中的。模块B在模块A
中导入一些对象