
在Windows上使用PowerShell创建Python虚拟环境后,执行activate.ps1脚本常因系统默认执行策略限制而报错;本文详解安全、精准的解决方法,助你顺利启用虚拟环境并步入规范开发流程。
在windows上使用powershell创建python虚拟环境后,执行`activate.ps1`脚本常因系统默认执行策略限制而报错;本文详解安全、精准的解决方法,助你顺利启用虚拟环境并步入规范开发流程。
当你在Windows 10中使用PowerShell运行 .\lpp4ed\Scripts\activate 时遇到如下警告:
<code>File ...\activate.ps1 cannot be loaded because running scripts is disabled on this system.</code>
这并非Python或虚拟环境本身的问题,而是PowerShell出于安全考虑,默认禁止执行本地脚本(包括activate.ps1),其执行策略(Execution Policy)被设为 Restricted。
✅ 推荐且安全的解决方案(仅影响当前用户,不降低系统全局安全性):
在PowerShell中以普通用户权限(无需管理员)运行以下命令:
<code class="powershell">Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force</code>
? 说明:
-Scope CurrentUser:仅修改当前登录用户的策略,不影响其他用户或系统级设置;-ExecutionPolicy RemoteSigned:允许本地脚本(如activate.ps1)无签名运行,但要求从互联网下载的脚本必须有可信签名——兼顾安全性与实用性,比Unrestricted更严谨;-Force:跳过确认提示,提升操作效率。
执行后,即可正常激活虚拟环境:
使用 font_manager.addfont() 添加中文字体文件,设置 rcParams['font.family'],并禁用 unicode_minus,使 matplotlib 显示中文。
<code class="powershell">.\lpp4ed\Scripts\activate</code>
你会看到命令行前缀变为 (lpp4ed),表明虚拟环境已成功激活,后续pip install和python命令均作用于该隔离环境。
⚠️ 注意事项:
- ❌ 不要使用
Set-ExecutionPolicy Unrestricted(尤其避免加-Scope LocalMachine),它会削弱系统防护能力; - ✅ 激活
.bat文件(如activate.bat)虽可绕过策略限制,但它仅适用于cmd.exe,在PowerShell中无法正确设置环境变量(如$env:VIRTUAL_ENV),可能导致deactivate失效或路径行为异常,不建议作为长期方案; - ? 验证策略是否生效:运行
Get-ExecutionPolicy -Scope CurrentUser,应返回RemoteSigned。
完成配置后,你的学习路径将回归正轨:从proj_01目录开始,用受控、可复现的虚拟环境实践《Learn Python Programming》中的每一个示例——这才是专业Python开发的第一步。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










