在 VS Code 中确认当前 Python 虚拟环境需通过“Python: Select Interpreter”命令查看右下角状态栏显示,并验证集成终端中 which python(macOS/Linux)或 where python(Windows)输出路径是否与选中解释器一致。
怎么在 VS Code 里确认当前用的是哪个 Python
虚拟环境
VS Code 不会自动高亮“你正在用哪个虚拟环境”,它只管调用你选中的解释器——所以关键不是“看”,而是“确认解释器路径是否指向你的虚拟环境”。常见错误是:终端里激活了
,但 VS Code 的 Python 解释器仍指向系统 Python 或其他环境,导致代码运行和调试行为不一致。
实操建议:
按
(Windows/Linux)或
(macOS),输入并选择
在弹出列表中,找路径含
、
、
或
字样的选项;真实路径类似:
(macOS/Linux)或
(Windows)
选中后,右下角状态栏会显示该解释器的简略路径,比如
打开集成终端(
),执行
(macOS/Linux)或
(Windows),输出路径应与上面一致
为什么终端里
了,VS Code 还不认
因为 VS Code 的集成终端默认不读取 shell 的激活逻辑(尤其在非登录 shell 模式下),而且它的 Python 扩展完全独立于终端是否激活——它只信任你手动选的解释器。这不是 bug,是设计逻辑分离。
容易踩的坑:
以为“终端能跑 pip list 就代表 VS Code 在用这个环境” → 错。调试、智能提示、格式化都走解释器配置,不走终端激活状态
在设置里手动改了
,但没重启窗口 → 修改后需重新加载窗口(
→
)才生效
项目根目录下有
(pyenv)或
(pipenv),但没装对应扩展 → VS Code 不会自动识别,得靠 Python 扩展 + 对应插件支持
已废弃,现在该看哪项配置
旧版 VS Code 用
,2022 年后已彻底弃用。现在所有解释器选择都由
(全局)或工作区级的
中同名字段控制,且优先级高于 UI 选择。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
实操建议:
检查
是否存在硬编码路径,比如:
—— 如果路径错了,VS Code 会静默 fallback 到系统 Python
路径必须是**绝对路径**或以
开头的相对路径(仅限工作区根目录下);写成
或
可能失败
如果用 Poetry,确保已安装
CLI 且 VS Code 安装了官方
扩展(非第三方 poetry 插件),它会自动识别
返回的路径
调试时发现包报错
,但终端里明明装好了
这几乎 100% 是解释器不一致:你在终端用的
,而 VS Code 调试器用的是另一个解释器(比如系统 Python),所以
装到了别处。
验证和修复步骤:
在 VS Code 里新建一个
,写
,运行它 → 输出路径就是当前调试/运行实际用的解释器
对比该路径和你期望的虚拟环境路径是否一致
如果不一致,在
的配置里显式指定:
(macOS/Linux)或
(Windows)
注意:
中的
字段优先级高于全局解释器设置
最常被忽略的一点:VS Code 的“Python 解释器选择”只影响编辑器功能(如 lint、autocomplete)和默认终端启动解释器,但不会强制所有子进程(比如你用
)都走它——那些依然取决于系统 PATH 和脚本内硬编码。真要稳,就别依赖激活,直接用完整路径调用。
venvCtrl+Shift+PCmd+Shift+PPython: Select Interpretervenv.venvenvpyenv/path/to/myproject/.venv/bin/pythonC:myproject.venvScriptspython.exePython 3.11.9 (.venv)Ctrl+`which pythonwhere pythonsource .venv/bin/activatepython.defaultInterpreterPathCtrl+Shift+PDeveloper: Reload Window.python-versionPipfilepython.pythonPathpython.pythonPathpython.defaultInterpreterPath.vscode/settings.json.vscode/settings.json"python.defaultInterpreterPath": "./.venv/bin/python"./../venv~/.venvs/myprojpoetryPythonpoetry env info --pathModuleNotFoundError.venv/bin/pythonpip installtest.pyimport sys; print(sys.executable)launch.json"python": "${workspaceFolder}/.venv/bin/python""python": "${workspaceFolder}\.venv\Scripts\python.exe"launch.jsonpythonos.system("python script.py")