从子目录中导入模块将导致该模块无法在其目录中找到其他模块



我有以下结构

> external.py
- folder1
- folder2
> a.py
> b.py

文件a.py:

from b import functionB

文件external.py:

from folder1.folder2.a import functionA

如果我现在调用python a.py,一切正常。但是调用python external.py会导致:

ModuleNotFoundError: No module named 'b'

如果我将文件a.py中的导入更改为:

from .b import functionB

则调用python external.py工作,但python a.py结果:

ImportError: attempted relative import with no known parent package

当我从外部文件夹结构导入模块a时,为什么模块b突然不可见了?

我尝试在几个地方添加__init__.py文件,但没有成功。

a.py中添加一个try except语句,应该可以正常工作,当您从external.py导入a.py时,工作目录会发生变化

try:
from b import functionB
except ImportError:
from folder1.folder2.b import functionb

最新更新