vscode带参调试python配置文件设置import无法引用上层目录
程序结构如上,现在想要调试 ssim_main文件,带参数。“带参调试无法正常import上级目录中的文件”详细说明就是:有这么一个叫 IGD 的模型。“无法指定调试器的运行目录”现在可以正常调试了。
救命被这个问题折磨一晚上,大概总结一下就是:
“带参调试无法正常import上级目录中的文件”
“无法指定调试器的运行目录”
详细说明就是:有这么一个叫 IGD 的模型

程序结构如上,现在想要调试 ssim_main文件,带参数。
官方给的命令行在 IGD 目录下正常运行:

但是调试时总是出现 ModuleNotFoundError: No module named 'Recorder' 的情况,改了很多遍调试的配置文件,失败,最后终于在CSDN一个帖子中找到了答案:
vscode python 无法引入上层目录解决-CSDN博客
最终的调试配置文件如下:

现在可以正常调试了。也就是添加了 cwd 及 env 这两个参数。
另:这个模型中官方给的命令跟之前见过的 python E:\..XX.py 格式不同,使用了 -m 选项,导致我使用绝对路径时出错

根据chatgpt的解释:
-m是 Python 解释器的一个选项,用于指定要执行的模块。通过使用
-m选项,你可以在不考虑当前目录的情况下,直接从模块路径中执行指定的模块。这对于直接执行安装在 Python 模块搜索路径中的模块非常有用。使用
-m选项的一般语法是:python -m module_name [args]其中,
module_name是要执行的模块的名称,args是传递给模块的参数。使用
-m选项的优点是它能够自动处理模块的路径解析和导入,确保你执行的是正确的模块,而不会因为当前目录或其他因素导致模块解析错误。
也就是我使用绝对路径时,python的搜索路径局限在 .py 文件的当前文件夹?而使用 -m p32.main.py 则搜索路径增加了 IGD,IGD/p32等路径,因此能够搜索到 Record.py。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)