VS Code不管理虚拟环境,仅识别已存在的解释器;需先用venv/conda创建环境,再通过命令面板选择或手动指定路径;集成终端默认不继承解释器环境,需手动激活或配置自动激活;Install Package功能调用当前解释器的pip,但要求环境自带pip;装包后需重启语言服务器并手动更新requirements.txt。

VS Code 本身不管理虚拟环境,它只负责识别、切换和调用已存在的 Python 解释器——所以你得先用 venv 或 conda 创建好环境,VS Code 才能“看到”并使用它。
怎么让 VS Code 找到你新建的虚拟环境
VS Code 会自动扫描工作区根目录及子目录下的常见虚拟环境文件夹(如 venv、.venv、env、envs),但前提是这些文件夹里必须包含 pyvenv.cfg 或 pyvenv.cfg + bin/python(macOS/Linux)或 Scripts/python.exe(Windows)。
- 手动创建时推荐用命令行:
python -m venv .venv
- 别用
virtualenv工具创建后不激活就直接关终端——VS Code 不关心你是否激活过,只认路径结构 - 如果环境放在非项目目录(比如统一放在
~/venvs/myproject),需要手动添加路径:按Ctrl+Shift+P→ 输入Python: Select Interpreter→ 点Enter interpreter path...→ 浏览到./bin/python或.\Scripts\python.exe
切换解释器后为什么 pip install 还是装到全局?
因为 VS Code 的集成终端(Terminal)默认不继承当前选中的 Python 解释器环境。即使你在左下角点了 .venv,新开的终端仍是系统 shell,默认用的是 PATH 里的第一个 python。
- 解决办法:在 VS Code 中按
Ctrl+Shift+`打开终端后,先运行source .venv/bin/activate
(macOS/Linux)或.venv\Scripts\activate.bat
(Windows) - 更省事的方式:在设置里开启自动激活——搜索
python.terminal.executeInFileDir设为true,再配合python.defaultInterpreterPath指向你的.venv下的python,新终端就会自动激活对应环境 - 验证是否生效:在终端里运行
which python(macOS/Linux)或where python(Windows),输出路径应指向.venv内部
在 VS Code 里直接装包,到底走的是哪个 pip?
VS Code 的命令面板中 Python: Install Package 功能,底层调用的是当前选中解释器路径下的 pip,也就是 your_venv/bin/python -m pip install xxx。但它有个隐藏前提:该解释器必须自带 pip(标准 venv 创建时默认带)。
立即学习“Python免费学习笔记(深入)”;
- 如果提示
No module named pip,说明这个环境没装 pip,需手动运行:.venv/bin/python -m ensurepip --upgrade
- 不要在未激活的终端里用裸
pip install,容易误装到系统或别的环境 - 装包后记得重启 Python 语言服务器(右键编辑器 →
Python: Restart Language Server),否则补全和类型提示可能不更新
最常被忽略的一点:VS Code 的 Python 扩展不会帮你同步 requirements.txt。装完包后,得自己运行 .venv/bin/python -m pip freeze > requirements.txt,否则下次拉代码的人根本不知道该装什么。










