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
)
的终端
我尝试过的东西
- 正在重新启动 VSC
- 正在重启我的电脑
- 更改
__init_.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"],
我是运行很多文件夹和子文件夹中的脚本,结构有点混乱,但基本上是这样的:
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
)
我尝试过的东西
- 正在重新启动 VSC
- 正在重启我的电脑
- 更改
__init_.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"],