PowerShell 中激活 Python 虚拟环境的几种办法
PowerShell 里激活 Python 虚拟环境,最常见的卡点就两个:脚本执行策略拦住了,或者你其实开的是 CMD,却在按 PowerShell 的方式操作。前者改策略就行,后者换终端最省事。
先切到 CMD,最快能用
如果只是想先把环境拉起来,直接换到命令提示符通常最省时间。
- 关闭当前 PowerShell 窗口。
- 按
Win + R,输入cmd,回车。 - 进入项目目录后执行:
venv\Scripts\activate.bat
看到命令行前面多了 (venv),就说明已经进到虚拟环境里了。这个办法没什么美感,但临时排障很好用。
在 PowerShell 里放开脚本权限
如果你打算一直用 PowerShell,还是把执行策略调一下更顺手。Windows 默认对脚本比较谨慎,本地的 Activate.ps1 经常被挡住。
先用管理员身份打开 PowerShell:
- 打开开始菜单,搜索
PowerShell - 右键选择 以管理员身份运行
然后执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
这里的 -Scope CurrentUser 只改当前用户,不会动到整台机器的策略;-Force 省掉确认提示。这个设置一般够用:本地脚本可以跑,远程没签名的脚本仍然会被拦。
有时候会碰到 Set-ExecutionPolicy 提示'不是内部命令'。这种情况我通常先怀疑自己开错了终端,而不是先怀疑系统。
可以先执行:
$PSVersionTable
如果能看到版本信息,说明确实是在 PowerShell 里;如果报错,那就重新打开'Windows PowerShell'或者'PowerShell 7',别在 CMD 里继续试。实在不放心,也可以直接调用完整路径:
& "$env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe" -Command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force"
确认策略是否生效,用这个命令:
Get-ExecutionPolicy -Scope CurrentUser
输出 RemoteSigned 就可以了。
接着回到普通 PowerShell,进入项目目录,执行:
.\venv\Scripts\Activate.ps1
正常的话,前面同样会出现 (venv)。
在 VS Code 里直接换默认终端
如果问题主要出现在 VS Code 里,改默认终端比每次手动切换更省心。
- 打开 VS Code 设置,快捷键
Ctrl + ,。 - 搜索
terminal.integrated.defaultProfile.windows。 - 把默认终端从
PowerShell改成Command Prompt。 - 重开终端后再执行激活命令。
这个方式适合不想碰系统策略的人。代价也很直接:你在 VS Code 里少了 PowerShell 的那套体验,但换来的是少出错。

