[PowerShell] 修改执行策略解决 VSCode 虚拟环境报错“Activate.ps1 cannot...running...on this system.“

这篇具有很好参考价值的文章主要介绍了[PowerShell] 修改执行策略解决 VSCode 虚拟环境报错“Activate.ps1 cannot...running...on this system.“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


🐞 BUG

💻 VSCode提示的报错信息

在VSCode中尝试激活python虚拟环境时遇到以下报错信息:

PS F:\test> & f:/test/.venv/Scripts/Activate.ps1
& : 无法加载文件 F:\test\.venv\Scripts\Activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micro
soft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ & f:/test/.venv/Scripts/Activate.ps1
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
PS F:\test>

类似问题参考:stackoverflow.com

& : File C:\Users\pc\Documents\python\venv\Scripts\Activate.ps1 cannot be loaded because running scripts is 
    disabled on this system. For more information, see about_Execution_Policies at 
    https:/go.microsoft.com/fwlink/?LinkID=135170.
    At line:1 char:3
    + & c:/Users/pc/Documents/python/venv/Scripts/Activate.ps1
    +   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : SecurityError: (:) [], PSSecurityException       
        + FullyQualifiedErrorId : UnauthorizedAccessenter code here

这个报错信息的意思是:尝试激活一个python虚拟环境,但是遇到了一个PowerShell的执行策略问题。

PowerShell默认禁止运行没有数字签名的脚本,而虚拟环境的激活脚本可能没有签名。
为了解决这个问题,可以使用下面介绍的方法中的任意一种,来修改PowerShell的执行策略,从而允许运行虚拟环境的激活脚本。

🐞 DEBUG

🔨 方案一(已执行):修改PowerShell的执行策略

三种推荐的可选命令:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

最终执行记录(如图所示):

  • 以管理员身份运行PowerShell,输入Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned,然后输入y确认。
  • 重新启动VSCode,然后再次尝试激活虚拟环境,看看是否还有报错。
  • 如果还有报错,可以尝试方案二使用cmd或者git bash作为终端,而不是PowerShell,因为它们没有执行策略的限制。

[PowerShell] 修改执行策略解决 VSCode 虚拟环境报错“Activate.ps1 cannot...running...on this system.“,DEBUG,vscode,ide,编辑器,PowerShell 执行策略

💡 PowerShell的执行策略

PowerShell是一种强大的命令行工具,它可以让我们用编程的方式来管理和自动化Windows系统的各种任务。
PowerShell也可以运行脚本,脚本是一种包含一系列PowerShell命令的文本文件,它可以让我们批量执行复杂的操作。
然而,PowerShell并不是随便就可以运行任何脚本的,它有一种安全机制,叫做执行策略(Execution Policy)。

执行策略是用来控制PowerShell是否可以运行脚本,以及脚本是否需要数字签名的。数字签名是一种用来验证脚本的来源和完整性的技术,它可以防止脚本被篡改或者伪造。

执行策略有以下几种级别:

  • Restricted:最严格的执行策略,禁止运行所有的脚本,只能运行交互式的命令。这是Windows客户端计算机的默认执行策略。
  • AllSigned:要求所有的脚本都必须有有效的数字签名,无论是本地的还是远程的,否则不能运行。
  • RemoteSigned:只对远程下载的脚本进行限制,要求它们必须有有效的数字签名,而对本地创建的脚本不进行限制,无论是否签名都可以运行。这是Windows服务器计算机的默认执行策略。
  • Unrestricted:对所有的脚本都不进行限制,但是对于远程下载的未签名脚本,会提示用户是否运行。
  • Bypass:最宽松的执行策略,不对任何脚本进行任何限制,无论是本地的还是远程的,无论是签名的还是未签名的,都可以运行。

💡 三个命令的用途和效果

这三个命令都是用来设置PowerShell的执行策略的,执行策略是一种安全机制,用于控制PowerShell是否可以运行脚本,以及脚本是否需要数字签名。

这三个命令的区别是:

  • Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force
    这个命令会将当前用户的执行策略设置为Bypass,表示不阻止任何操作,并且没有任何警告或提示。
    这意味着不对任何脚本进行任何限制,无论是本地的还是远程的,无论是签名的还是未签名的,都可以运行。 -Force 参数表示强制覆盖现有的执行策略,不需要用户确认。
    这是最不安全的执行策略,因为它可能会让你运行一些恶意的或者不可信的脚本。

  • Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
    这个命令会将当前用户的执行策略设置为RemoteSigned,表示要求受信任的发布者对从Internet下载的脚本和配置文件的数字签名,而在本地计算机上编写的脚本不需要数字签名。
    这意味着只对远程下载的脚本进行限制,要求它们必须有有效的数字签名,而对本地创建的脚本不进行限制,无论是否签名都可以运行。
    这是一个比较安全的执行策略,因为它可以防止你运行一些未经验证的远程脚本。

  • Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    这个命令会将当前用户的执行策略设置为Unrestricted,和上一个命令的区别是作用域不同,这个命令会影响当前计算机上的所有用户。
    这意味着对所有脚本都不进行限制,但是对于远程下载的未签名脚本,会提示用户是否运行。
    这是一个比较灵活的执行策略,因为它可以让用户自己决定是否运行某个脚本,但是也需要用户有一定的判断能力。
    这个执行策略的安全性取决于用户的判断能力。

综上所述,这三个命令的优劣取决于具体需求和场景,以及对安全性和便利性的权衡。关于哪个命令更好,这要根据具体需求和安全考虑来决定。

一般来说,Bypass 是最不安全的执行策略,因为它可以让任何脚本无条件运行,可能会导致恶意脚本的执行。
RemoteSigned 是一种比较适中的执行策略,因为它可以在一定程度上防止从不可信来源下载的脚本的执行,但是也不会限制本地编写的脚本的执行。这里建议使用Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned命令,因为它可以提供一个比较合理和安全的执行策略,既可以运行本地的脚本,又可以避免运行不可信的远程脚本。

当然,执行策略并不是限制用户操作的安全系统,而是一种帮助用户设置基本规则的安全功能,用户可以根据自己的判断和需要来更改执行策略。

[PowerShell] 修改执行策略解决 VSCode 虚拟环境报错“Activate.ps1 cannot...running...on this system.“,DEBUG,vscode,ide,编辑器,PowerShell 执行策略

🔨 方案二(参考):将默认终端类型设置为命令提示符

Windows上将默认终端类型设置为命令提示符有几种方法可以实现,下面介绍其中三种常用的方法。

🔧 方法 1:在系统设置中选择Windows控制台主机作为默认终端应用程序

这个方法是通过修改Windows的系统设置,来改变默认的终端应用程序,从而影响PowerShell的执行策略。

终端应用程序是一种可以让我们在命令行界面下与计算机交互的程序,例如Windows控制台主机(cmd.exe)、Windows PowerShell、Windows终端等。
不同的终端应用程序可能有不同的执行策略,例如Windows控制台主机的执行策略是Bypass,而Windows PowerShell的执行策略是Restricted。

要使用这个方法,需要按以下的步骤操作:

  • 按Win键,然后输入设置,打开系统设置。
  • 选择隐私和安全 > 终端,在那里可以看到默认终端应用程序的选项。
  • 从下拉菜单中选择Windows控制台主机,这样就可以使用cmd.exe作为默认终端了。

优点是简单方便,不需要输入任何命令,只需要几次点击就可以完成。
缺点是可能会影响其他的终端应用程序的使用,例如Windows PowerShell或者Windows终端,因为它们的执行策略可能不同于Windows控制台主机的执行策略。

🔧 方法 2:在Windows终端的设置中选择Windows控制台主机作为默认终端应用程序

这个方法是通过修改Windows终端的设置,来改变默认的终端应用程序,从而影响PowerShell的执行策略。

Windows终端是一种新的终端应用程序,它可以让我们在一个窗口中同时使用多个终端,例如Windows控制台主机、Windows PowerShell、PowerShell Core、Azure Cloud Shell等。
Windows终端也可以让我们自定义终端的外观和行为,例如字体、颜色、背景、快捷键等。

要使用这个方法,需要按以下的步骤操作:

  • 按Win键,然后输入wt,打开Windows终端。
  • 点击左上角的下拉菜单,选择设置。在设置窗口中,选择启动选项卡,然后在默认终端应用程序的下拉菜单中选择Windows控制台主机,这样也可以使用cmd.exe作为默认终端了。

优点是可以在Windows终端中方便地切换不同的终端应用程序,而不需要修改系统设置。
缺点是需要安装Windows终端,它不是Windows系统自带的,需要从Microsoft Store下载安装。

🔧 方法 3:在Windows控制台主机的属性中更改默认终端应用程序

这个方法是通过修改Windows控制台主机的属性,来改变默认的终端应用程序,从而影响PowerShell的执行策略。

Windows控制台主机是一种最基本的终端应用程序,它可以让我们运行各种命令行工具,例如cmd.exe、PowerShell.exe等。
Windows控制台主机的属性可以让我们调整终端的外观和行为,例如窗口大小、缓冲区大小、字体大小、颜色等。

要使用这个方法,需要按以下的步骤操作:

  • 如果已经打开了一个cmd.exe的窗口,可以右键单击标题栏,然后选择属性。如果没有打开,可以按Win键,然后输入cmd,打开一个新的窗口,然后再右键单击标题栏,选择属性。
  • 在属性窗口中,选择终端选项卡,然后在默认终端应用程序的下拉菜单中选择Windows控制台主机,这样也可以使用cmd.exe作为默认终端了。

优点是可以针对每个终端窗口进行单独的设置,而不需要修改系统设置或者Windows终端的设置。
缺点是需要对每个终端窗口进行设置,而且设置可能不会保存,需要每次重新设置。文章来源地址https://www.toymoban.com/news/detail-828423.html

到了这里,关于[PowerShell] 修改执行策略解决 VSCode 虚拟环境报错“Activate.ps1 cannot...running...on this system.“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • anaconda安装缺少大量包的问题+修改conda默认虚拟环境安装在C盘问题+pycharm找不到conda可执行文件问题

    1.删除用户目录 下的.conda和.condarc文件  2.查看注册表:win+r,输入regedit查看已安装的文件 重新安装anaconda 成功加载87个项目文件:  修改虚拟环境路径:尝试的方法: 1.用户下.condarc文件添加d盘路径,-前空两格,-后空一格 问题未解决,anaconda仍然默认创建虚拟环境在C盘 2.接

    2023年04月24日
    浏览(49)
  • vscode连接linux虚拟机 环境配置和常见问题解决方案

    vscode连接linux虚拟机配置环境步骤 1、自己安装vscode ,傻瓜式安装,配置ssh插件 2、配置虚拟机 (1)确保自己的虚拟机上的ssh服务可用 打开虚拟机,在终端命令行上敲入:sudo apt-get install openssh-server 进行安装。(有的Ubuntu版本在系统安装好就已经自带了) (2)确定自己虚拟机

    2024年02月16日
    浏览(62)
  • 内网安全信息收集与并发编程挑战:深入理解PowerShell脚本执行与域环境控制

    本文详细介绍了如何收集内网安全信息,以及如何面对并发编程的挑战。内容涵盖了判断域环境、定位域IP和管理员账户、理解域内权限、控制主机判断、域渗透思路、本地主机与域成员主机的区别,以及如何使用PowerShell脚本执行策略进行操作。

    2024年04月11日
    浏览(41)
  • 服务器——Vscode选择虚拟环境编译器后,无法跳转至对应的python路径的解决办法

    输入 which python ,显示 /bin/python,而不是对应的python路径。 该用户账户下的 .bashrc 文件手动指定了python路径。 将手动指定的python路径代码注释,这样就跟随编译器,自动选择python路径了。 注释完后,输入 source ~/.bashrc ,更新配置。

    2024年01月18日
    浏览(55)
  • vscode - 环境准备 - 修改缓存路径

    在window上使用vscode,其默认的缓存(包含代码缓存,插件等)存储路径是在c盘,即使将vscode安装在其它磁盘。 频繁使用vscode,vscode会占用C盘大量磁盘空间,C盘空间不充裕,会被vscode慢慢吃掉剩余空间。 本文基于version 1.83。 看vscode描述,IntelliSense大致原理是:预编译头文件

    2024年02月07日
    浏览(37)
  • vscode使用虚拟环境

    我的conda没有添加入path,每次打开总是报错 1.点击vscode的右下角这里  2.点击后可能会在vscode上方出现下图样子, 如果出现下图,则点击第二项Select at workspace level,  3.接着出现下图样式(也有可能没有上图,直接出现下图样式)。 选择对应的解释器,或者点Enter interpreter

    2024年02月08日
    浏览(35)
  • 执行 JUnit 单元测试前,修改环境变量

    同一份代码,在不改变配置文件的情况下,可以连接不同的数据库,进行JUnit测试。 非开发、测试、生产环境的区别。而是   我就站在这里,指哪打哪! 避免重复造轮子,参考博文: 使用junitspring修改系统的环境变量,解决docker程序测试问题_junit 环境变量_fly-iot的博客-CS

    2024年02月07日
    浏览(45)
  • vscode虚拟环境使用jupyter

    在某虚拟环境内安装torch,但是ipyn文件保存后无法正常导入torch 1.conda环境下安装 Jupyter等一切配置,进入虚拟环境 2. conda install nb_conda_kernels 3.安装完成后重新打开VSCode,在运行Jupyter notebook中的代码之前,在右上角的Select Kernel中切换到 test 中的Kernel,即可成功导入Pytorch。

    2024年02月07日
    浏览(42)
  • python 用VScode 搭建虚拟环境

      安装虚拟环境--           独立的搭建一个单独干净的,零第三方库的,原始的python环境,         打包的时候会将你的第三方库一同打包,导致臃肿缓慢  虚拟环境解决这一问题 发送项目的时候直接可以吧文件夹发送给别人. 步骤1-         先建立一个文件夹 vevn 步骤2-    

    2024年02月11日
    浏览(35)
  • VScode下创建python虚拟环境

    1. 安装了VSCode :确保你已经安装了Visual Studio Code。你可以从VSCode官方网站免费下载并安装。 2. 安装了python :确保你的计算机上安装了Python。你可以从Python官方网站下载并安装。 3. 安装Python插件 :打开VSCode,在扩展(Extensions)市场中搜索并安装Python插件。此插件为VSCode提供

    2024年02月20日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包