装对插件、选准解释器、用好工作区是vs code python开发三步核心:必须安装ms-python.python官方插件,手动执行python: select interpreter指定项目环境,且务必通过“打开文件夹”方式启用工作区以确保配置生效。

装对插件、选准解释器、用好工作区,三步到位。其他花哨配置不装也能跑代码,但容易在调试、补全、路径识别上卡住。
必须装的插件只有 ms-python.python
它由 Microsoft 官方维护,ID 是 ms-python.python,自带调试器(debugpy)、基础类型推断、测试集成和 Jupyter 支持。别装“Python Extension Pack”或“Python for VS Code”这类合集包——它们和官方插件冲突概率极高,会导致调试按钮灰色、断点不命中。
安装后重启 VS Code 或按 Ctrl+Shift+P → 输入 Developer: Reload Window 重载窗口。验证方式:打开一个 .py 文件,状态栏左下角应显示类似 Python 3.12.4 ('venv': venv) 的提示。
- 如果没显示,说明插件没生效或解释器未选 —— 先别动其他设置,回头检查解释器
-
Pylance通常随ms-python.python自动安装;如未装,手动搜Pylance补上,它负责高精度补全和类型检查 - 想支持
.ipynb或交互式执行,再装ms-toolsai.jupyter;纯脚本开发可跳过
Python: Select Interpreter 必须手动执行
VS Code 不会自动猜对解释器,尤其当你有 conda、pyenv、多个 venv 或系统 Python 并存时。只靠插件默认行为,90% 的 ModuleNotFoundError 和断点失效都源于此。
操作路径:Ctrl+Shift+P → 输入 Python: Select Interpreter → 从列表选你项目实际用的环境。常见有效路径包括:
- Windows:
.venv\Scripts\python.exe - macOS/Linux:
.venv/bin/python - conda:
~/miniconda3/envs/myenv/bin/python - 系统 Python:
/usr/bin/python3(不推荐用于项目)
如果列表为空,点击 Enter interpreter path,然后在终端里运行 which python(macOS/Linux)或 where python(Windows),把输出路径粘贴进去。
工作区必须用“打开文件夹”,不能只开单个 .py 文件
只打开一个 hello.py,VS Code 无法识别 .venv、ruff.toml、pyproject.toml 等项目级配置,Pylance 的路径解析、Ruff 的 linting、甚至 import 补全都可能失效。
正确做法:新建空文件夹(如 myproject),在 VS Code 中选择 File → Open Folder 打开它。后续所有操作(创建 .venv、写 app.py、配 launch.json)都在这个上下文中进行。
- 虚拟环境建议用
python -m venv .venv创建,名称固定为.venv,VS Code 会自动识别 - 首次选解释器后,VS Code 会在该文件夹下生成
.vscode/settings.json,里面记录了"python.defaultInterpreterPath"—— 这是项目隔离的关键 - 不要把多个项目的代码塞进同一个文件夹,否则解释器和配置容易串
调试前先确认 launch.json 没填错字段
VS Code 调试只依赖一个 .vscode/launch.json 文件,且核心就两种模式:运行脚本(program)或运行模块(module)。混用字段会导致调试启动失败或导入错误。
最简可用配置(脚本模式):
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"module": "",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
注意点:
-
"module": ""这行必须删掉或留空;若填了值(如"module": "http.server"),就不能同时设"program" -
"program": "${file}"表示运行当前打开的文件;改成"program": "./src/main.py"也合法,但路径必须相对于工作区根目录 - 不要手动改
"type": "python"成其他值,这是调试器识别依据
真正容易被忽略的是:哪怕 launch.json 写对了,只要解释器选错或工作区没打开,调试照样失败。优先排查这两项,比调 JSON 更省时间。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











