在 VS Code 中执行 py 文件时,是从当前打开的文件夹目录为执行路径 os.getcwd()(文件读写相对路径和这个有关),但是 Python 环境变量 sys.path[0] 默认是 py 文件所在目录(模块查找路径和这个有关)。如果 main 入口在文件夹顶层还好,如果在子文件夹就会有些问题,比如相对路径导入模块时会报错。 从 os.getcwd(),sys.path中看出 运行目录是正常的,path中没有运行目录,所以模块导入会出报错。 解决方法 修改launch配置 cwd 控制的是当前工作目录 os.getcwd(),env.PYTHONPATH 控制的是环境变量 sys.path。也可以把那些设置放到 VS Code 的.vscode目录 launch.json 文件里 ${workspaceFolder}是项目运行目录 这个设置是把 workspaceFolder 添加到 sys.path 列表中
{
"name": "Python: 当前文件",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"cwd": "${workspaceFolder}",
"env": {"PYTHONPATH":"${workspaceFolder}"}
}