Visual Studio 代码告诉我它不能导入 python 模块,但它运行了代码

Visual Studio Code tells me it can't import python module, yet it runs the code

我是运行很多文件夹和子文件夹中的脚本,结构有点混乱,但基本上是这样的:

src/
  controllers/
     __init__.py
     a.py
     b.py
   models/
     __init__.py
     c.py
   __init__.py
   main.py

^^^ 应该是红色错误下划线,main.py 看起来像:

from controllers import a
^^^^
import models.c
^^^^^^

a.py:

import models.c
^^^^^^

我尝试了从导入和常规导入,因为可能只有一个有问题,但没有,在 VSC 中,在我这样导入的每个地方,它告诉我 unable to import [directory](它仍然从 VSC 和从通过 python3 main.py)

的终端

我尝试过的东西

这是 visual studio 代码问题吗,导入有问题吗?我应该把东西放入 __init__.py 吗?我可以抑制这个问题或以其他方式解决它吗?

在其他文件夹中导入模块时,VSCode默认从当前运行ning文件的父文件夹中搜索文件。例如:“a.py”中的“import models.c”,“a.py”的父文件夹“controllers/”没有“models”,所以终端显示警告。

当我删除“main.py”的同级文件“__init__.py”时,终端没有显示错误和警告:

对于“a.py”,我在“launch.json”中添加了如下设置,将项目文件夹路径添加到系统路径中,供VSCode查找:

"env": {
                "PYTHONPATH": "${workspaceFolder}"
            }

调试a.py:

更新:

在代码可以运行的前提下,我使用如下设置关闭Pylint显示的“import-error”:

"python.linting.pylintArgs": ["--disable=E0401"],