PowerShell中无法加载ps1脚本文件,因为在此系统上禁止运行脚本

发布时间 2024-01-08 10:08:29作者: jack_Meng

一、问题发生

运行环境Windows 10、python 3.11.1、IDE VScode

当然你可能使用了其他IDE,例如pycharm等,不过没有关系解决问题的方法都是一致的。

报错信息如下图所示:

在这里插入图片描述
actvivate.ps1这个脚本文件是用来激活python虚拟环境的。

其实,在该报错信息中已经给出了解决问题的答案。有关详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkID=135170 中的about_Execution_Policies

本质上,这个报错就是一个Windows系统的执行策略的问题,和Python语言本身无关。如果你想了解更详细的情况,可以直接点击上面的链接,看完后,问题也就迎刃而解了。考虑到有人想要快点解决问题,也可以继续看下文,我提供的解决方案。

二、问题解决

(1) 以管理员的身份运行PowerShell(可以通过在桌面,按住shift+鼠标右键)

在这里插入图片描述

(2) 运行命令:Get-ExecutionPolicy -List 查看当前用户的执行策略

在这里插入图片描述
可以看到CurrentUser(当前用户)的执行策略为Restricted(受限制的)

我们在官网查看下该策略的具体内容,可以看到不允许脚本运行,所以才有了“无法加载文件activate.ps1,因为此系统上禁止运行脚本。”

在这里插入图片描述

我们的策略还有如下设置:

组策略执行策略
允许所有脚本 Unrestricted
允许本地脚本和远程签名脚本 RemoteSigned
仅允许签名脚本 AllSigned


(3) 运行命令:Set-ExecutionPolicy -ExecutionPolicy AllSigned CurrentUser,更改执行策略。运行命令后会有提示信息,然后输入Y确认更改执行策略即可。

在这里插入图片描述

我们查看下策略AllSigned策略的内容
在这里插入图片描述

(4) 可以去运行你的python程序了,我是在VScode中运行的,运行后出现了下面这条提示信息,输入“A”,始终运行。然后程序运行就不会在出现这个问题了。

在这里插入图片描述

(5)运行命令:Set-ExecutionPolicy -ExecutionPolicy Restricted CurrentUser
为了安全起见,把当前用户的执行策略重新设置会Restricted,防止以后恶意脚本的运行。

这一步不是必做的,只是个人建议。**当创建新的python虚拟环境时,依然会现该问题,需要按照上述方法重新设置执行策略。**根据自己的情况选择吧。

 

【出处】:https://blog.csdn.net/gao_zhennan/article/details/131719371

=======================================================================================