在Windows环境中,当使用Power Shell来激活用virtualenv构建的的项目的虚拟环境时(执行Script\activate.ps1),你可能会遇到UnauthorizedAccess的错误。
完整的错误信息如下:
1 2 3 4 5 6 7 8
| PS E:\todo-service> .\.venv\Scripts\activate.ps1 .\.venv\Scripts\activate.ps1 : 无法加载文件 E:\Study\Flask\todo-service\.venv\Scripts\activate.ps1,因为在此系统上禁止 运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 + .\.venv\Scripts\activate.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [],PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
|
发生这个错误的原因是:为提高安全性,系统默认不允许执行不信任的脚本。要解决可以执行一下命令更改默认设置
1
| Set-ExecutionPolicy RemoteSigned
|
执行后,系统会提示:
1 2 3 4
| 执行策略更改 执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略? [Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”):
|
回答”Y”, 然后在重新执行激活命令就可以了。
1 2
| PS E:\todo-service> .\.venv\Scripts\activate.ps1 (.venv) PS E:\Study\Flask\todo-service>
|