Anaconda在PowerShell中无法使用activate激活环境

我在电脑里用anaconda创建了一个tensorflow环境,在Anaconda Navigator管理器中确实显示已经创建成功:

并且使用Anaconda Navigator管理器也是可以成功激活环境的:

但是问题来了:我在windows自带的Windows PowerShell里使用activate命令切换环境时,命令明明已经成功执行,但却没有成功切换环境,如图:

经过各种折腾,终于发现原来是Power Shell并不兼容anaconda的虚拟环境!


解决方法:

情况一:Conda版本低于4.6

安装开源库:GitHub - BCSharp/PSCondaEnvs: Implementation of Conda's activate/deactivate functions in Powershell.

命令如下:

conda install -n root -c pscondaenvs pscondaenvs

然后更改Windows PowerShell配置,管理员身份启动PowerShell,并执行:

Set-ExecutionPolicy RemoteSigned

 执行效果如下:

PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): Y
PS C:\Windows\system32>

再次执行activate tensorflow,成功切换激活环境:

情况二:Conda版本高于4.6

 conda 4.6以上版本,已经内置了对PowerShell的支持。

 以管理员身份打开,并在Powershell窗口输入:

conda init powershell

 然后重新以管理员身份打开Powershell,输入:

conda activate 虚拟环境名称

 即可成功切换!


觉得有用请留下你的赞 ^_^

激活Anaconda PowerShell Prompt中的环境,你可以按照以下步骤进行操作。首先,找到Anaconda PowerShell Prompt的属性。然后,将属性的目标值修改为以下命令: %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate foo" 其中,'foo'是你想要激活的虚拟环境的名称。这样,当你打开Anaconda PowerShell Prompt时,它会自动激活指定的虚拟环境。\[1\] 另外,如果你想了解Anaconda PowerShell Prompt的原理,它与Anaconda Prompt的原理类似。它们都是通过运行PowerShell程序来实现的。具体来说,Anaconda PowerShell Prompt的路径是%windir%\System32\WindowsPowerShell\v1.0\powershell.exe。然后,通过使用相关参数(-ExecutionPolicy ByPass -NoExit -Command)来执行Anacondapowershell脚本('C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1'),最后使用conda activate命令来激活指定的虚拟环境('C:\ProgramData\Anaconda3')。\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Anaconda Prompt和Anaconda PowerShell Prompt工作原理](https://blog.youkuaiyun.com/mighty13/article/details/119881204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [anaconda prompt和cmd和powershellanaconda powershell prompt和git bash有什么区别](https://blog.youkuaiyun.com/Hodors/article/details/127218259)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值