在vscode中调试时摆脱python错误“尝试相对导入而没有已知的父包”

问题描述

我创建了 workspace_folder,克隆了一个 github repo文件名称),其中包含 repo_module 文件夹,而该文件夹又包含 train.pyalgo.py:>

workspace_folder
|
+-- repo
     |
     +-- train.py
     |
     +-- algo.py

repo 的自述文件要求运行:

python -m repo_module.train 

我可以从 repo 文件夹中运行:

workspace_folder/repo$ python -m repo_module.train

但我想在 vscode 中调试 train.py。我打开 train.py 并使用 Python: Current File 配置开始调试。但它开始给我以下错误

Exception has occurred: ImportError
attempted relative import with no kNown parent package

对于 from . import algo 中的第 train.py 行。

答案 here 表明我们需要对代码进行一些更改。我在想是否可以对 vscode 调试 launch.json 进行任何更改并使其工作。我试图在 "cwd": "${workspaceFolder}/repo" 中设置 launch.json 但它给出了同样的错误。所以,现在我已经用所有文件中的空字符串替换了所有 from . (点 . 之后的空格)(将所有 from . import abc 转换为 import abc)和 from .. 后没有空格)到所有文件中的 from (将所有 from .abc 转换为 from abc)并且能够调试它。但是我能够猜测是否可以在 vscode launch.json修改代码和配置。有没有可能。

(另请注意,我的更改似乎有效,因为所有 py 文件都“直接”在 repo 文件夹中,而 repo 文件夹中没有子文件夹。)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)