在我们打开pycharm时,有时候会因为 Window Policies 而导致无法安装或者运行脚本(库)
如何解决问题:
首先打开你的window powershell。我这里用的是Listary直接查找路径。
然后用 管理员身份 运行Windows PowerShell。
进入这个页面:
首先要Powershell命令获取有效的执行策略:
Get-ExecutionPolicy
然后输出自己的执行策略,并按优先级顺序显示这些策略:
Get-ExecutionPolicy -List
结果如下:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
这里我们可以参考微软的PowerShell执行策略来对我们自己的powershell经行翻译:
PowerShell 执行策略
这些策略的强制执行仅在 Windows 平台上发生。 PowerShell 执行策略如下所示:
AllSigned
- 脚本可以运行。
- 要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。
- 在运行尚未分类为受信任或不受信任的发布者的脚本之前,会提示你。
- 运行已签名但恶意脚本的风险。
Bypass
- 不阻止任何操作,并且没有任何警告或提示。
- 此执行策略适用于 PowerShell 脚本内置于较大应用程序或 PowerShell 是具有其安全模型的程序的基础的配置。
Default
- 设置默认执行策略。
- Restricted 适用于 Windows 客户端。
- 为 Windows 服务器远程签名。
RemoteSigned
- Windows 服务器计算机的默认执行策略。
- 脚本可以运行。
- 需要来自受信任的发布者对从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)的数字签名。
- 不需要对在本地计算机上编写的脚本(而不是从 Internet 下载)进行数字签名。
- 如果脚本被取消阻止(例如使用 cmdlet),则运行从 Internet 下载且未签名的
Unblock-File
脚本。 - 从 Internet 以外的源运行未签名的脚本以及可能是恶意的已签名脚本的风险。
Restricted
- Windows 客户端计算机的默认执行策略。
- 允许单个命令,但不允许脚本。
- 防止运行所有脚本文件,包括格式设置和配置文件 (
.ps1xml
) 、模块脚本文件 (.psm1
) ,以及 PowerShell 配置文件 (.ps1
) 。
Undefined
- 当前范围内没有设置执行策略。
- 如果所有范围内的执行策略为 Undefined,则有效的执行策略适用于 Restricted Windows 客户端和适用于 Windows Server 的 RemoteSigned 。
Unrestricted
- 非 Windows 计算机的默认执行策略,不能更改。
- 可以运行未签名的脚本。 存在运行恶意脚本的风险。
- 在运行不是来自本地 Intranet 区域的脚本和配置文件之前,警告用户。
脚本运行不了的原因是因为WindowShell默认所有的Policy都是Undefined。
我们只需要将CurrentUser改成 RemoteSigned即可。
如何操作
在Window Powershell中输入 Get-ExecutionPolicy -Scope CurrentUser
这条指令是选取CurrentUser的路径,这样我们才可以对其经行更改:
Get-ExecutionPolicy -Scope CurrentUser
然后将 CurrentUser 改成 RemoteSigned【或者改成你需要的执行策略】:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
输入之后 WindowShell 会弹出 执行策略更改-安全选择
输入 [A] 来确认更改策略:
最后退出你的WindowPowershell
重启Pycharm就好了