python - 使用当前文件夹中的模块的VScode Python未解析导入

标签 python visual-studio-code

我正在从某个 project/ 文件夹运行 vscode,并在某个 project/impl/ 文件夹中收到“ Unresolved 导入”错误。在 impl/ 文件夹中,我有 2 个 Python 文件:

# lib.py
class A():
    pass

# run.py
from lib import A # vscode error here - unresolved import
...

运行 run.py 时,Python 解释器发现 lib 很好,但 vscode 显示“ Unresolved 导入”错误 (screenshot)。

如果我将导入行更改为 from .lib import implementation(注意点),我会得到相反的行为,即 vscode 解析导入正常但 Python 解释器失败。

我应该如何导入 lib 或以其他方式配置 vscode 以解析从本地文件夹的导入? (显然我不想将本地文件夹的确切路径添加到 vscode 配置文件,因为我必须为项目中的每个子文件夹都这样做)

最佳答案

当我在我的电脑上使用 python 扩展版本 2018.12.1 时,我遇到了和你描述的一样的问题。

由于该功能是语言服务提供的,而python语言服务是由python扩展提供的,建议您可以尝试使用最新版本的python扩展(2020.8.106424)。

此外,您还可以使用扩展名“Pylance”,它还为 python 提供了出色的语言服务。

我在电脑上创建的项目:

enter image description here

我的环境:

VSCode 版本:1.48.2(用户设置)

操作系统:Windows_NT x64 10.0.18362

Python 扩展:2020.8.106424

settings.json 中的语言服务器:

 "python.languageServer": "Pylance",

更新1:

当我使用的语言服务是“Jedi”时,代码也没有这个警告:

"python.languageServer": "Jedi",

更新2:

由于这个警告不影响代码的执行结果,我们也可以在设置(settings.json)中关闭这种警告:

"python.analysis.disabled": [
      "unresolved-import"
  ]

这样,我们就可以使用"python.languageServer": "Microsoft",

关于python - 使用当前文件夹中的模块的VScode Python未解析导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63764420/

相关文章:

python - 机器学习的数据分离

python - SparkSQL : HQL script in file to be loaded on Python code

visual-studio-code - 如何使用 Visual Studio Code 的默认应用程序打开二进制文件(例如 Excel)

node.js - Electron process.dev配置不起作用?

python - 在 [Errno 32] Broken pipe 的情况下,Python 3.2 抛出什么样的异常

python - 训练期间验证准确率突然下降

python - 只计算一组中的男性

java - 使用 vscode 远程调试 java 云应用程序的问题

visual-studio-code - VS Code Regex 查找并替换为小写,如果可能,请使用\l 或\L

python - VSCode Python Intellisense 停止正常运行?现在所有变量都显示为字段