python -m venv 是调用内置模块的正确方式,直接运行 venv 会报错;推荐命名 .venv 以适配 Git 忽略和编辑器识别;激活失败需检查 PowerShell 执行策略;.venv 不可复制或提交,应通过 requirements.txt 重建。

python -m venv 命令必须加 -m 参数
直接运行 venv 会报错:'venv' is not recognized as an internal or external command。因为 venv 不是独立可执行程序,而是 Python 的一个内置模块,必须通过 python -m venv 调用。
常见错误包括:
- 误写成
venv venv或python venv venv - 在没配置 PATH 的机器上只装了 Python 但没勾选 “Add Python to PATH”,导致
python命令本身不可用
验证方式:先运行 python --version,能输出版本号再继续;否则需手动指定完整路径,例如:C:\Users\me\AppData\Local\Programs\Python\Python312\python.exe -m venv venv
venv 目录名建议用 .venv 而非 venv
虽然 venv 是最常见命名,但用 .venv(点开头)更合理:
立即学习“Python免费学习笔记(深入)”;
- Git 默认忽略以
.开头的目录,省去手动写.gitignore条目的麻烦 - 和
.vscode、.idea等编辑器元数据目录风格统一,语义更清晰 - VS Code 和 PyCharm 都能自动识别
.venv并提示激活
命令就是:python -m venv .venv。注意:Windows 下点开头目录完全合法,资源管理器可能默认隐藏,但 PowerShell / cmd 正常可见可用。
激活失败时优先检查 Scripts\activate 的执行策略
在 PowerShell 中运行 .venv\Scripts\activate 报错:File cannot be loaded because running scripts is disabled on this system,这是 Windows 默认禁止执行本地脚本的安全策略。
临时解决(仅当前会话):Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
不推荐永久关闭策略,也不要用 Unrestricted。其他绕过方式:
- 改用 CMD:运行
.venv\Scripts\activate.bat(CMD 下无策略限制) - 在 VS Code 终端中启动时就选“Command Prompt”而非 PowerShell
- 用
python -m venv --prompt "(myproj)" .venv自定义提示符,避免依赖 activate 脚本(部分场景下可跳过激活直接调用.venv\Scripts\python.exe)
不要复制、移动或 Git 提交 .venv 目录
.venv 是绑定到创建它的那台机器、那个 Python 安装路径的。它内部的 pyvenv.cfg 文件里硬编码了 home = C:\path\to\python.exe,一旦移动或换环境就会失效。
典型症状:
- 激活后运行
python报错:Failed to create process - pip 安装包后 import 失败,提示找不到模块(实际是 pip 装到了旧路径)
- PyCharm 显示 interpreter 路径正确,但运行时报 DLL 加载失败
正确做法:把 .venv 加进 .gitignore,团队成员各自运行 python -m venv .venv && pip install -r requirements.txt 重建。依赖一致性靠 requirements.txt 保证,不是靠拷虚拟环境。


















