必须选项目虚拟环境里的python可执行文件,否则vs code无法找到django包导致importerror;因其不继承终端激活状态,仅依赖手动指定的解释器路径启动调试、运行和补全。

必须选项目虚拟环境里的 python 可执行文件,不能选系统 Python、全局 Python 或未装 Django 的任意环境——哪怕它名字里带 “3.11” 或 “venv” 也不行,得验证里面真有 django 包。
为什么选错解释器会导致 ImportError: No module named 'django'
VS Code 的 Python 扩展不继承终端的激活状态,也不自动读取 pip list 结果。它只认你手动指定的那个 python 文件路径,并用它来启动调试器、运行代码、补全 import。常见错误包括:
- 右下角显示
Python 3.11.9,但路径是/usr/bin/python3—— 这是系统 Python,没装 Django - 选了
./venv/bin/python,但创建环境后没在该环境下运行pip install django - 路径写成绝对路径(如
/home/user/myproj/venv/bin/python),换台机器就失效
验证方法:新建 test.py,写 import django; print(django.__file__),运行看是否报错且输出路径在 venv 内。
Python: Select Interpreter 列表里没出现你的虚拟环境
VS Code 不扫描子目录,也不会自动识别 venv、.venv 或 env 文件夹。必须手动导航:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输Python: Select Interpreter - 选
Enter interpreter path... - Windows:定位到
.\venv\Scripts\python.exe(注意是.exe,不是pythonw.exe) - macOS/Linux:定位到
./venv/bin/python(别选python3软链接,要选真实可执行文件) - 选完后,
.vscode/settings.json会自动生成"python.defaultInterpreterPath": "./venv/bin/python"(相对路径!)
Django 项目结构特殊,光选解释器还不够
VS Code 默认不知道哪是 manage.py、哪是 settings 模块,所以调试按钮灰掉、模板跳转失效、Run Server 按钮不响应都是因为缺这两项配置:
华为云 Python SDK 查询工具。自动发现已安装 SDK 的服务包、Client类、API 方法、入参详情、类信息(__init__ 参数、属性、类型、描述),支持关键字搜索,快速定位目标 API 使用方法。
- 打开
.vscode/settings.json(没有就新建),加这三行:
{
"python.defaultInterpreterPath": "./venv/bin/python",
"python.django.managePyPath": "./manage.py",
"python.django.settingsModule": "myproject.settings"
}
注意:myproject.settings 是 Python 模块路径(对应 myproject/__init__.py 所在包),不是文件路径;如果 settings 分环境(如 settings/dev.py),这里填 myproject.settings.dev,但必须确保能被 import 成功。
调试时 runserver 启动失败?别用普通 Python 配置
直接点绿色三角跑 manage.py 会当普通脚本执行,跳过 Django 命令解析逻辑,导致参数不生效、端口绑定失败、甚至静默退出。正确做法是配 django 类型的 launch 配置:
- 打开
.vscode/launch.json - 新增一个
configurations项,type必须是django(不是python) - 确保
module字段不存在(Django 类型配置不走-m),args设为["runserver", "8000"] - 如果项目根目录不是
manage.py所在位置,加"cwd": "${workspaceFolder}"
最简可用配置长这样:
{
"version": "0.2.0",
"configurations": [
{
"name": "Django: Run Server",
"type": "django",
"request": "launch",
"port": 8000,
"host": "127.0.0.1",
"args": ["runserver", "8000"]
}
]
}
复杂点在于:Django 的模块路径、manage.py 位置、多 settings 文件、以及 VS Code 对 django 类型调试器的版本兼容性(某些旧版扩展不支持该 type)。最容易被忽略的是 settingsModule 填错后,调试器连 INSTALLED_APPS 都加载不了,但错误提示极不明确——它不会说“settings 找不到”,只会卡在 AppRegistryNotReady 或静默失败。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










