每个项目必须用独立的.venv目录和.vscode/settings.json来固化解释器配置,因vs code的“select interpreter”仅临时生效且不保存,需手动配置python.defaultinterpreterpath相对路径并验证终端、pip、调试三处python路径一致。

每个项目必须用独立的 .venv 目录 + 独立的 .vscode/settings.json,否则解释器会串、依赖会混、pip 安装位置会错。
为什么不能只靠“Python: Select Interpreter”点一下就完事
VS Code 的 Python: Select Interpreter 命令只是临时切换当前会话的解释器路径,并不自动写入配置文件。关掉窗口再打开,或者新开一个终端,很可能又回到全局 Python 或上一个项目的环境。
常见错误现象:
- 底部状态栏显示的是
.venv/bin/python,但终端里运行pip -V却显示全局路径 - 在终端手动激活了
.venv/Scripts/activate,但 VS Code 调试时仍报ModuleNotFoundError - 两个项目共用同一个
.venv文件夹,结果 A 项目升级了requests,B 项目直接炸了
根本原因:VS Code 默认不保存解释器选择,除非你显式配置 python.defaultInterpreterPath。
必须手动创建 .vscode/settings.json 并填对路径
这是唯一能固化项目级解释器的方式。路径必须是相对于项目根目录的相对路径(不是绝对路径),且 Windows 和 macOS/Linux 写法不同。
正确做法:
- 确保项目根目录下已存在
.venv(用python -m venv .venv创建) - 在项目根目录新建文件夹
.vscode,再新建文件settings.json - Windows 用户填:
"python.defaultInterpreterPath": ".\venv\Scripts\python.exe" - macOS/Linux 用户填:
"python.defaultInterpreterPath": "./venv/bin/python" - 顺手加上
"python.terminal.activateEnvironment": true,让新终端自动激活
别漏掉反斜杠/正斜杠细节——写错一个字符,VS Code 就找不到解释器,连调试按钮都灰掉。
多项目并行时,.venv 目录名和位置不能复用
有人图省事,在多个项目里都用 venv 名字、甚至把虚拟环境建在桌面或 D 盘根目录。这会导致:
- VS Code 在打开不同文件夹时,可能误读同名
venv目录,选错解释器 -
pip install实际装进的是另一个项目的.venv,自己项目里 import 不到 - Git 提交时一不小心把别人的
.venv当成自己的提交了
安全做法:
- 每个项目根目录下建自己的
.venv(注意开头的点,隐藏但统一) - 不要跨项目共享
.venv目录,哪怕它们 Python 版本一样 - 如果要用不同 Python 版本,比如 3.9 和 3.11,直接建两个独立项目文件夹,别试图在一个
.venv里切版本
验证是否真生效,别只看状态栏
底部状态栏显示路径 ≠ 实际生效。必须做三件事交叉验证:
- 打开集成终端(
Ctrl+`),执行which python(macOS/Linux)或where python(Windows),输出必须指向项目内.venv - 执行
pip -V,确认 Python 路径和上面一致 - 在 VS Code 中按
F5启动调试,看调试控制台第一行打印的 Python 路径是否匹配
最容易被忽略的一点:VS Code 的“工作区”概念。如果你是通过 File → Open Folder 打开单个文件夹,那 .vscode/settings.json 才起作用;如果只是 File → Open File 打开一个 .py,整个配置都不加载。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











