问题描述
在 PowerShell 中激活 Python 虚拟环境时,可能会遇到'不支持激活'或'不是内部命令'的错误。这通常是由于 PowerShell 默认限制脚本执行权限导致的。
解决方案
1. 切换到 Command Prompt(CMD)
这是最直接的方法。
- 关闭当前 PowerShell 窗口。
- 按下
Win + R,输入cmd回车打开命令提示符。 - 进入项目目录后激活虚拟环境:
venv\Scripts\activate.bat - 命令行开头出现
(venv)标识即表示成功。
2. 修改 PowerShell 执行策略(推荐)
PowerShell 默认限制脚本执行,需修改策略允许本地脚本运行。
- 以管理员身份打开 PowerShell:搜索 PowerShell,右键选择'以管理员身份运行'。
- 验证环境:输入
$PSVersionTable确认版本信息,确保是真正的 PowerShell 而非 CMD。 - 修改执行策略:
此设置允许运行本地脚本,限制远程未签名脚本,较为安全。使用Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force-Scope CurrentUser仅修改当前用户策略,避免系统级权限问题。 - 激活虚拟环境:关闭管理员窗口,重新打开普通 PowerShell,进入项目目录执行:
.\venv\Scripts\Activate.ps1 - 验证生效:输入
Get-ExecutionPolicy -Scope CurrentUser,输出RemoteSigned即表示成功。
3. VS Code 终端配置
如果在 VS Code 中遇到问题,可更改默认终端:
- 打开设置(
Ctrl + ,)。 - 搜索
terminal.integrated.defaultProfile.windows。 - 将默认终端从
PowerShell改为Command Prompt。 - 重启终端后再尝试激活。
备用方案
若不想修改系统策略,可在当前会话临时允许脚本运行:
powershell -ExecutionPolicy Bypass -File .\venv\Scripts\Activate.ps1

