VS Code 的 Python 开发优势源于轻量架构与精准扩展组合;需手动配置 ms-python.python 及配套扩展(如 pylint/flake8、black/autopep8),并正确设置 linting、调试模式(module/file)、解释器路径和语言服务器(优先 Pylance)。

VS Code 本身不是 Python 专用编辑器,它的“独特优势”不来自内置功能,而来自轻量架构 + 精准扩展组合 —— 这意味着你得手动配,但配好了比重 IDE 更快、更可控。
Python 扩展(ms-python.python)为什么不能只装一个
单独启用 ms-python.python 只提供基础语法高亮和简单补全。真要获得调试、linting、格式化、测试集成等能力,必须确认以下扩展同时启用并协同工作:
-
ms-python.pylint或ms-python.flake8(选其一,避免冲突) -
ms-python.black-formatter或ms-python.autopep8(格式化后端需显式指定) -
ms-python.python-docstring(可选,但写 docstring 时省三秒)
常见错误:装了 pylint 却没在设置里设 "python.linting.enabled": true,结果右下角一直显示“no linting errors”,其实是根本没跑。
调试时 launch.json 的 module 和 file 模式区别很关键
运行 python -m http.server 类命令,必须用 "request": "launch", "module": "http.server";若用 "program" 指向一个脚本,则当前工作目录(cwd)决定包导入是否成功。两者不能混用。
立即学习“Python免费学习笔记(深入)”;
典型坑:
- 想调试
myproject.cli模块,却在launch.json里写"program": "myproject/cli.py"→ 报ImportError: No module named 'myproject' - 正确做法是设
"module": "myproject.cli",并确保"cwd": "${workspaceFolder}"
终端里 python 命令和 VS Code 选中的解释器不一致?查 python.defaultInterpreterPath
VS Code 的 Python 扩展会读取系统 PATH 查找 python,但你可能在虚拟环境中激活了 venv/bin/activate,而 VS Code 根本没感知到 —— 它仍用全局解释器。
解决方法只有两个:
- 在命令面板(Ctrl+Shift+P)运行
Python: Select Interpreter,手动指向venv/bin/python(macOS/Linux)或venv\Scripts\python.exe(Windows) - 在
.vscode/settings.json中硬编码:"python.defaultInterpreterPath": "./venv/bin/python"(注意路径是相对于 workspace root)
否则你会遇到:终端里 pip list 显示安装了 requests,但 import requests 在调试时却报错 —— 因为调试用的是另一个解释器。
性能敏感场景下,禁用 pylsp 或改用 Pylance 能明显提速
默认 Python 扩展已捆绑 Pylance(微软自研语言服务器),它比旧版 pylsp 启动快、内存占用低、类型推断更准。但如果你手动装过第三方 LSP(如 pyright 或 pylsp),它们会抢占通道,导致智能提示卡顿、跳转失败。
检查方式:打开命令面板 → Developer: Toggle Developer Tools → Console 里搜 language server,看启动的是哪个。
稳妥做法:
- 卸载所有非官方 Python 语言服务器扩展
- 确认设置中
"python.languageServer": "Pylance"(这是默认值,但有人会手改) - 大项目(>5k 行)可关掉
"python.analysis.extraPaths"里不必要的路径
真正麻烦的不是配置多,而是每个开关背后都对应一个真实问题:解释器错位、路径未解析、LSP 冲突、模块加载顺序 —— 配一次不难,难的是下次换环境时,忘了哪一项该同步改。










