根本原因是项目未以文件夹方式打开,vs code python扩展仅在完整工作区中激活;需通过file→open folder选择项目根目录,待右下角显示“python loading…”完成后再执行命令。

VS Code 里 Python: Create Environment 按不出来?
根本原因是项目没以「文件夹」方式打开。VS Code 的 Python 扩展只在完整工作区(即文件夹)中激活功能。如果你双击 .py 文件启动 VS Code,它会进入“空工作区”模式,Python: Create Environment 命令压根不会出现。
解决办法很简单:关闭当前窗口 → 点击 File → Open Folder → 选择你的项目根目录(比如 C:\WEB\web_main)→ 确保左侧资源管理器里能看到 .vscode/、__pycache__/ 这类子目录结构。等右下角状态栏出现 “Python Loading…” 并消失后,再试。
常见误操作:
- 在终端里手动敲
python -m venv .venv,但 VS Code 没识别到——因为扩展根本没加载 - 用快捷键
Ctrl+Shift+P搜索时输成Python: Create Enviroment(拼错) - 系统装了多个 Python,但扩展没扫描到——检查
python --version和py -3 --version是否都返回有效版本
.venv 创建成功但终端没自动激活?
VS Code 不会自动执行 activate.bat 或 Activate.ps1,它只做两件事:选解释器 + 在新终端里预设环境变量。所以你看到的「未激活」其实是正常现象——只要终端里 pip 装的包只影响 .venv,就说明已生效。
验证方式(在集成终端里运行):
pip list
输出里应该只有 pip、setuptools、wheel,没有你全局装的 requests 或 numpy。如果看到一堆包,说明当前终端还在用系统 Python。
这时候别急着手动 source .venv/bin/activate(macOS/Linux)或 .venv\Scripts\activate(Windows),而是检查:
- 右下角状态栏是否显示类似
Python 3.11 (.venv)的路径 - 终端启动时左上角是否写着
Python而不是PowerShell或Command Prompt(如果是后者,关掉重开一个终端) - 有没有在终端里提前执行过
deactivate导致环境被退出
为什么推荐用 .venv 而不是 venv?
因为 .venv 是 PEP 405 官方指定的默认名称,VS Code、PyCharm、甚至部分 CI 工具(如 GitHub Actions 的 setup-python)都会优先识别带点的隐藏文件夹。用 venv 名称反而容易被 Git 忽略规则漏掉,或被编辑器当成普通文件夹跳过扫描。
如果你硬要改名(比如叫 env),必须在 Python: Create Environment 向导最后一步手动输入路径 ./env,不能靠后期重命名文件夹——VS Code 不会重新关联已存在的非标准目录。
顺带一提:.venv 在 Windows 资源管理器里默认不可见,别因此怀疑创建失败。在 VS Code 资源管理器里它始终可见,且右键能直接「在终端中打开」。
激活后 pip install 报 PermissionError?
这是 PowerShell 默认禁止执行本地脚本导致的,尤其在 Windows 上第一次激活 .venv\Scripts\Activate.ps1 时最常见。错误信息通常是:
Execution policies prevent the script from running.
解决方案不是改系统策略,而是换终端类型:
- 按
Ctrl+Shift+`打开终端 → 点击右上角「+」→ 选择Command Prompt(不是 PowerShell)→ 再运行Python: Select Interpreter - 或者,在 PowerShell 终端里临时允许一次:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,然后输入Y
注意:不要用管理员权限运行 VS Code,这会导致虚拟环境路径写入系统级目录,后续所有项目都可能继承错误权限。
真正麻烦的不是创建,是后续忘记当前终端是否处于虚拟环境中。每次新开终端,都要看一眼右下角状态栏,或者先敲 which python(macOS/Linux)或 where python(Windows)确认路径指向 .venv 里——这点容易被忽略,但直接影响依赖隔离效果。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











