在windows的cmd中激活python虚拟环境需先cd到虚拟环境根目录,再执行scripts\activate.bat脚本,成功后命令行前缀显示(myenv),此时python和pip指向虚拟环境;退出用deactivate命令。

cmd里怎么激活Python虚拟环境
Windows下用cmd进入Python虚拟环境,本质是运行虚拟环境目录下的Scripts\activate.bat脚本。不能直接cd进目录就“进入”,必须显式激活,否则python和pip仍指向全局解释器。
- 确保已创建虚拟环境(例如用
python -m venv myenv生成) - 在
cmd中先cd到虚拟环境根目录(即包含Scripts和Lib的那层),不是Scripts子目录 - 执行:
Scripts\activate.bat(注意:不要加call,也不要双击运行) - 成功后命令行前缀会变成
(myenv),此时where python应返回myenv\Scripts\python.exe
为什么用activate.bat而不是activate.ps1
PowerShell默认禁用脚本执行策略,activate.ps1在普通cmd里根本无法运行;即使切换到PowerShell,也常因ExecutionPolicy报错File cannot be loaded。而activate.bat是纯批处理,在cmd中零配置可用,兼容性最稳。
-
cmd中只认activate.bat,写activate.ps1会提示“不是内部或外部命令” - 别手贱改后缀——
activate.cmd或activate.bat都行,但内容必须是批处理语法 - 如果误删了
activate.bat,重跑python -m venv myenv重建即可,不用手动修复
常见失败现象和排查点
激活后python没变、pip list还是全局包、或者提示“不是内部命令”,基本都是路径或执行方式问题。
- 错误:输入
Scripts\activate.bat后无反应或闪退 → 检查当前目录是否正确,用dir Scripts确认存在该文件 - 错误:
'Scripts' is not recognized as an internal or external command→ 路径写错了,少写了.\,应写.\Scripts\activate.bat(尤其当前在父目录时) - 错误:激活后
pip install仍装到全局 → 运行where pip,若返回C:\Users\...\pip.exe而非myenv\Scripts\pip.exe,说明激活失败,重启cmd重试 - 注意:
venv路径不能含中文或空格,否则activate.bat可能解析异常(尤其老版本Python)
退出虚拟环境只需一个命令
不用关cmd窗口,也不用手动改PYTHONPATH,直接输deactivate就行。它会还原PATH和PROMPT,且这个命令在任意目录下都有效。
-
deactivate不是外部程序,是activate.bat注入的shell函数,所以只能在激活后的cmd中用 - 如果误关闭了窗口,下次打开
cmd仍是系统环境,必须重新激活 - 别用
exit退出——那是关终端,不是退出venv
.\Scripts\activate.bat → 看括号前缀。其它都是干扰项。Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











