VScode python导入模块目录的坑

ZhangJian 2022-02-10 n次浏览 Python 编辑

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

        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": true,
            "cwd": "${workspaceFolder}",
            "env": {"PYTHONPATH":"${workspaceFolder}"}
        }