假设由于一些丑陋的包装原因,我有一个文件
foo.py
,其中包含:
try:
from . import bar
except ImportError:
import bar
假设文件结构不存在
__init__.py
文件,因此预计会引发并捕获 ImportError
。如果我在此代码上运行 mypy,我会收到以下错误:
mypy_eg/foo.py:2: error: No parent module -- cannot perform relative import
Found 1 error in 1 file (errors prevented further checking)
但是,如果我将第 2 行更改为
from . import bar # type: ignore
,我仍然会收到错误。
我希望此评论能够跳过该错误。事实上,如果我尝试像这样忽略文件中的其他错误,mypy 会很高兴地跳过它们,但由于某种原因不会跳过这个错误。
有人知道这是为什么吗?
不完全是答案,因为我仍然不知道如何禁用它,但我找到了导致错误的原因。正如 this issues 中所暗示的,您需要将
__init__.py
文件放在包树的顶部。我创建了一个空的,突然导入错误就消失了。