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

标签 python visual-studio-code import python-import

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

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 中,在我这样导入的每个地方,它都告诉我无法导入 [directory](它仍然从 VSC 和终端通过 python3 main.py)

运行

我尝试过的事情

  • 重启 VSC
  • 重启我的电脑
  • 更改 __init_.py 中的内容(但没有系统性,只是玩玩)

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

最佳答案

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

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

enter image description here

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

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

调试a.py:

enter image description here

更新:

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

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

enter image description here

关于python - Visual Studio Code 告诉我它不能导入 python 模块,但它运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65444018/

相关文章:

javascript - 如何向 HTML 页面公开 Processing.js 函数?

python - 从不同文件导入变量的正确方法是什么?

python - 如何存储 pandas Panel 实例?

python - Pandas Python 中的 Dataframe Comprehension 以创建新的 Dataframe

javascript - 如何在 VS Code 中将一种界面主题与其他文本颜色主题一起使用?

git - 对开发团队的 Codespaces 设置的基数感到困惑

python - FFMPEG 输入中的空格阻碍执行

python - 如何使用 pyenv 安装 ipython qtconsole(Python 版本 3.4.2)

javascript - vscode代码折叠不显示右括号

android - 如何将现有的android项目导入到另一个android项目中