VS Code无法激活conda虚拟环境

问题

  • 如图,在VS Code终端下运行conda activate base无法激活base环境
    在这里插入图片描述
  • 运行python脚本时,终端打印如下信息:
. : 无法加载文件 C:\Users\***\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。?LinkID=135170中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\22756\Documents\WindowsPowerShell\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   + CategoryInfo          : SecurityError: (:) [],PSSecurityException
   + FullyQualifiedErrorId : UnauthorizedAccess

先解决问题

  • 以管理员身份运行Powershell,然后执行以下命令:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
  • 再去VS Code 终端激活虚拟环境conda activate base,虚拟环境成功激活,问题解决
    在这里插入图片描述

再来简单分析

该问题和Windows PowerShell执行策略有关。(关于执行策略)

Windows PowerShell执行策略
执行策略PowerShell 加载配置文件并运行脚本的条件
RESTRICTED1> Windows 8、Windows Server 2012 和 Windows 8.1 中的默认执行策略。
2> 允许单独的命令,但不会运行脚本。
3> 阻止所有脚本文件的运行,包括格式设置文件和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 和 Windows PowerShell 配置文件 (.ps1)。
ALLSIGNED1> 脚本可以运行。
2> 要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。
3> 会在运行来自某类发布者(即你尚未归类为受信任或不受信任的发布者)的脚本之前提示你。
4> 存在运行已签名但却是恶意的脚本的风险。
REMOTESIGNED1> 脚本可以运行。这是 Windows Server 2012 R2 中的默认执行策略。
2> 要求从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)具有受信任的发布者的数字签名。
3> 不要求你在本地计算机上编写的脚本(不是从 Internet 下载的)具有数字签名。
4> 如果脚本已被取消阻止(比如通过使用 Unblock-File cmdlet),则运行从 Internet 下载但未签名的脚本。
5> 存在运行来自 Internet 之外的源的未签名脚本和已签名但却是恶意的脚本的风险。
UNRESTRICTED1> 未签名的脚本可以运行。(这存在运行恶意脚本的风险。)
2> 在运行从 Internet 下载的脚本和配置文件之前提醒用户。
BYPASS1> 不阻止任何内容,并且没有任何警告或提示。
2> 该执行策略旨在用于后述配置:在其中 Windows PowerShell 被内置于一个更大的应用程序中,或者在其中 Windows PowerShell 是具有其自己安全模式的程序的基础。
UNDEFINED1> 当前作用域中未设置执行策略。
2> 如果所有作用域中的执行策略都是 Undefined,则有效的执行策略是 Restricted,它是默认执行策略。

注意:在不区分通用命名约定 (UNC) 路径和 Internet 路径的系统上,可能不允许使用 RemoteSigned 执行策略运行由 UNC 路径标识的脚本。

获取执行策略

输入以下代码获取当前会话所有执行策略:

Get-ExecutionPolicy -List

其结果如下:

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process          Bypass
  CurrentUser       Undefined
 LocalMachine      Restricted
更改执行策略

以管理员身份运行Windows PowerShell,按以下格式键入命令:

Set-ExecutionPolicy -ExecutionPolicy <PolicyName>

如,执行以下命令:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

再获取当前执行策略如下,可以看到,相应执行策略已成功修改

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process          Bypass
  CurrentUser       Undefined
 LocalMachine    RemoteSigned

参考资料

[1] https://docs.microsoft.com/zh-cn/previous-versions/windows/powershell-scripting/hh847748%28v=wps.640%29

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_湘江夜话_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值