VSCode中可运行Python unittest但无法调试,报ModuleNotFoundError
问题原因及解决方法
调试时出现ModuleNotFoundError: No module named 'mymodule',核心原因是调试时的工作目录和运行测试时不一致:运行测试时你大概率是从项目根目录myproject执行的,Python能找到同级的mymodule;但调试时VSCode默认可能把test文件夹作为工作目录,导致Python无法向上查找mymodule。
以下是几种解决办法:
配置调试工作目录为项目根
打开VSCode调试面板,创建或修改launch.json文件,在配置项里添加"cwd": "${workspaceFolder}",确保调试时Python从myproject目录启动。示例配置:{ "version": "0.2.0", "configurations": [ { "name": "Python: Unittest", "type": "python", "request": "launch", "module": "unittest", "args": [ "test.matrix_test" ], "cwd": "${workspaceFolder}" } ] }将mymodule标记为Python模块
在mymodule文件夹下创建一个空的__init__.py文件,让Python识别这个文件夹为可导入的模块。临时添加路径(应急用,不推荐长期使用)
在matrix_test.py的最开头添加以下代码,手动把项目根目录加入Python的搜索路径:import sys sys.path.append('../')
内容的提问来源于stack exchange,提问作者topcan5
相关产品推荐
相关产品推荐

