VS Code中launch.json配置的PYTHONPATH在Python脚本中不生效
问题:VS Code中配置PYTHONPATH不生效的解决方法
问题说明
我需要从当前工作目录的上级目录导入方法,手动追加目录到sys.path可行,但想利用VS Code的${workspaceFolder}变量配置PYTHONPATH——由于.env文件无法识别该变量,所以尝试在launch.json中配置,但运行代码时sys.path里始终看不到预期的conf目录。
目录结构
project/ - .vscode - launch.json - conf/ - file1.py - src/ - file2.py - main.py - example.py
当前launch.json配置
{ "version": "0.2.0", "configurations": [ { "name": "Python: main", "type": "python", "request": "launch", "module": "main", "justMyCode": true, "env": {"PYTHONPATH": "${workspaceFolder}/conf/"} }, { "name": "Python: example", "type": "python", "request": "launch", "module": "example", "justMyCode": true, "env": {"PYTHONPATH": "${workspaceFolder}/conf/"} }, ] }
测试代码(打印sys.path)
import sys print(sys.path)
正确配置方式
1. 修复JSON语法错误
原配置中最后一个配置项末尾的多余逗号会导致JSON解析失败,VS Code无法正常加载配置,需删除该逗号。
2. 追加而非覆盖PYTHONPATH
直接赋值会覆盖原有PYTHONPATH,导致Python丢失标准库或依赖路径。应将目标路径追加到原有路径后,根据操作系统调整分隔符:
- Linux/macOS 使用冒号
: - Windows 使用分号
;
修改后的完整launch.json
{ "version": "0.2.0", "configurations": [ { "name": "Python: main", "type": "python", "request": "launch", "module": "main", "justMyCode": true, "env": {"PYTHONPATH": "${workspaceFolder}/conf:${env:PYTHONPATH}"} }, { "name": "Python: example", "type": "python", "request": "launch", "module": "example", "justMyCode": true, "env": {"PYTHONPATH": "${workspaceFolder}/conf:${env:PYTHONPATH}"} } ] }
3. 确认工作区根目录
确保VS Code打开的工作区根目录是project文件夹,而非其子目录,否则${workspaceFolder}解析路径会出错。
4. 交互模式生效配置(可选)
若希望VS Code终端的交互模式也能识别该PYTHONPATH,可在工作区settings.json中添加对应系统的终端环境配置:
// Linux/macOS "terminal.integrated.env.linux": { "PYTHONPATH": "${workspaceFolder}/conf:${env:PYTHONPATH}" } // Windows "terminal.integrated.env.windows": { "PYTHONPATH": "${workspaceFolder}/conf;${env:PYTHONPATH}" }
内容的提问来源于stack exchange,提问作者vpk
相关产品推荐
相关产品推荐

