
在Windows PowerShell中创建Python虚拟环境后,执行activate.ps1脚本时因系统默认执行策略限制而报错,本文提供安全、精准的解决方法,助你顺利启用虚拟环境并进入Python开发正轨。
在windows powershell中创建python虚拟环境后,执行`activate.ps1`脚本时因系统默认执行策略限制而报错,本文提供安全、精准的解决方法,助你顺利启用虚拟环境并进入python开发正轨。
当你在Windows 10上使用PowerShell创建Python虚拟环境(如py -3.12 -m venv lpp4ed)后,尝试运行.\lpp4ed\Scripts\activate时遇到如下错误:
File …ctivate.ps1 cannot be loaded because running scripts is disabled on this system.
这是因为PowerShell默认启用受限执行策略(Restricted),禁止运行本地脚本(包括activate.ps1),以增强系统安全性——这并非故障,而是设计使然。
✅ 推荐解决方案(安全且精准):
仅对当前用户放宽策略,不影响系统级安全,且无需管理员权限:
<code class="powershell">Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force</code>
⚠️ 注意:我们不推荐使用 Unrestricted(如原答案所提),因其允许所有本地脚本无条件运行,存在潜在风险;而 RemoteSigned 是更优选择——它允许本地编写的脚本(如activate.ps1)直接运行,同时仍要求从互联网下载的脚本必须带有受信任证书签名,兼顾安全性与实用性。
使用 font_manager.addfont() 添加中文字体文件,设置 rcParams['font.family'],并禁用 unicode_minus,使 matplotlib 显示中文。
立即学习“Python免费学习笔记(深入)”;
执行后,即可正常激活环境:
<code class="powershell">.lpp4edScriptsActivate.ps1</code>
成功激活后,命令行提示符前将显示 (lpp4ed),表示已进入虚拟环境。
? 补充说明:
-
activate.bat能运行是因为它属于CMD批处理脚本,不受PowerShell执行策略约束,但它仅在CMD中生效;在PowerShell中调用.bat文件无法正确设置环境变量(如$env:PATH),因此不会真正激活虚拟环境——这是常见误区。 - 验证是否激活成功:运行
python -c "import sys; print(sys.prefix)",输出路径应指向lpp4ed目录而非全局Python安装路径。
? 总结:
执行策略不是障碍,而是可控的安全门禁。使用 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned 是Windows + PowerShell + Python开发的标准实践,既解除虚拟环境激活限制,又保持系统防护能力。完成一次配置后,所有后续虚拟环境均可无缝激活,助你专注编程学习,不再卡在第一步。

















