微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在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 举报,一经查实,本站将立刻删除。