VSCode调试Django应用未运行在virtualenv虚拟环境中该如何解决?
VSCode调试Django不加载virtualenv虚拟环境问题修复方案
你观察到的解释器路径指向pyenv版本而非虚拟环境Python,就是问题的核心根源。当前调试时加载的是全局Homebrew安装的3.9.7版本Python,既没有用到你设置的pyenv local 3.6.9,也没有加载virtualenv的依赖环境,可按照以下步骤修复:
- 移除旧版废弃配置:删除VSCode
settings.json中的"python.pythonPath"配置项,该参数已被新版Python插件弃用,会干扰解释器优先级判断 - 校验虚拟环境版本有效性:进入项目目录,运行
source env/bin/activate激活虚拟环境后执行python --version,如果输出不是3.6.9,删除现有env文件夹,用pyenv管理的3.6.9版本重新创建虚拟环境:
/Users/username/.pyenv/versions/3.6.9/bin/python -m venv env
- 手动指定VSCode项目解释器:按
Command+Shift+P调出命令面板,输入Python: Select Interpreter,在列表中选中路径为/Users/username/documents/programmering/bq/env/bin/python3的虚拟环境解释器,不要选择带pyenv/versions前缀的全局3.6.9版本 - 修正launch.json调试配置:在原有配置基础上增加
python字段,强制指定调试用的解释器路径,避免自动识别异常,完整配置参考:
{ "name": "Python: Django", "type": "python", "request": "launch", "program": "${workspaceFolder}/manage.py", "args": ["runserver"], "django": true, "python": "/Users/username/documents/programmering/bq/env/bin/python3", "env": { "PYTHONPATH": "${workspaceRoot}"} }
- 校验pyenv配置:检查你的shell配置文件(/.zshrc或/.bashrc)中是否已添加pyenv初始化脚本,确保pyenv版本优先级正常:
export PYENV_ROOT="$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
所有配置完成后完全退出VSCode再重新打开项目,启动调试后打印sys.version和sys.path即可看到版本为3.6.9,且sys.path中包含虚拟环境的site-packages路径。
内容的提问来源于stack exchange,提问作者allinws
相关产品推荐
相关产品推荐

