【问题标题】:How to debug python code in VS code when there are multiple files that import classes from other files ? (Debugging when there are dependencies)当有多个文件从其他文件导入类时,如何在 VS 代码中调试 python 代码? (有依赖时调试)
【发布时间】:2020-10-25 18:30:40
【问题描述】:

在所有 youtube 视频中,人们只是发布使用简单的 python 文件调试的视频,没有像导入这样的依赖项。当有来自不同子模块的多个文件作为我们在 VS Code 中调试的当前文件的依赖项时,有人可以解释如何调试吗?在调试时,我遇到了诸如“无法从 blabla 导入 blabla”之类的导入错误。但通常如果我运行,它运行良好 我什至尝试将launch.json 文件配置设置为模块而不是当前文件。 请帮忙! 我正在寻找不使用 ipdb 的答案。想知道用VS Code接口调试。

【问题讨论】:

  • 您的问题可能需要更多上下文。您是否单步执行行并收到导入错误?
  • 它甚至没有让我有机会进入或结束。它在导入的顶部突然失败。 (我可以看到逐行)
  • 我添加了一个检查点。第20行,导入时间,导入pytest在第1行,并成功执行。但是在第 2 行,有一个导入 from tests import bla 失败,并显示“无法从测试中导入 bla”
  • FWIW - 无法使用 Spyder IDE 重现。

标签: python debugging visual-studio-code import


【解决方案1】:
  1. 根据您描述的信息,我创建了以下项目结构:

(在b的“test.py”文件中,导入a的“main.py”文件中的“class_aa”类。)

  1. 您可以在“test.py”文件的开头添加以下语句,将需要导入的模块添加到系统路径中,以帮助VSCode找到它:
import os,sys 
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  1. 调试test.py:

【讨论】:

  • 感谢您创建了一个项目结构来回答这个问题。我将您的行 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 复制粘贴在顶部,但仍然无效。看到同样的错误“Cannot import bla from bla”
  • @Sumanth Vakacharla -您能提供更详细的描述吗?例如,尽量减少重现您描述的问题的文件夹结构,以及错误的截图,以便我们查看相关因素。(截图时请遮盖个人信息)
猜你喜欢
  • 2020-03-25
  • 1970-01-01
  • 2023-01-31
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 2021-05-09
  • 1970-01-01
相关资源
最近更新 更多