Anaconda Prompt和Anaconda PowerShell Prompt工作原理

概述

Anaconda安装完成后,开始菜单所有程序``Anaconda3中会添加Anaconda Prompt和Anaconda PowerShell Prompt两个菜单项。

这两个菜单项是快捷方式。通过查看这两个快捷方式的属性可知:

  • Anaconda Promp对应的命令为%windir%\System32\cmd.exe "/K" C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3
  • Anaconda PowerShell Prompt对应的命令为%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\ProgramData\Anaconda3' "

在这里插入图片描述

Anaconda Promp原理

Anaconda Promp菜单项打开后的窗口截图如下所示。

在这里插入图片描述

通过 Anaconda Promp对应的命令%windir%\System32\cmd.exe "/K" C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3可知。

Anaconda Promp调用了%windir%\System32\cmd.exe即系统CMD程序;"/K"CMD程序的参数,表示;C:\ProgramData\Anaconda3\Scripts\activate.batAnaconda虚拟环境的激活脚本;C:\ProgramData\Anaconda3Anaconda虚拟环境base的目录。

(base) C:\Users\Administrator>conda env list
# conda environments:
#
base                  *  C:\ProgramData\Anaconda3
foo                      C:\ProgramData\Anaconda3\envs\foo

相当于先打开CMD程序,然后激活Anacondabase虚拟环境。下面我们做一个验证!

  • 首先运行CMD程序。
  • 然后执行C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3命令。

我们可以发现其效果与直接打开 Anaconda Promp一致。

修改Anaconda Promp打开的默认虚拟环境

打开CMD程序,输入如下命令C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3
从如下结果可知,base虚拟环境被激活了。

C:\Users\Administrator>C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3
(base) C:\Users\Administrator>

打开CMD程序,输入如下命令C:\ProgramData\Anaconda3\Scripts\activate.bat foo
从如下结果可知,base虚拟环境被激活了。

C:\Users\Administrator>C:\ProgramData\Anaconda3\Scripts\activate.bat foo
(foo) C:\Users\Administrator>

因此,打开Anaconda Promp属性,将目标修改为%windir%\System32\cmd.exe "/K" C:\ProgramData\Anaconda3\Scripts\activate.bat foo。再次打开这个快捷方式,命令提示符就会变成(foo) C:\Users\Administrator>,即默认进入foo虚拟环境。
在这里插入图片描述

Anaconda PowerShell Prompt原理

Anaconda PowerShell Prompt的原理与Anaconda Prompt的原理类似,%windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; conda activate 'C:\ProgramData\Anaconda3' "%windir%\System32\WindowsPowerShell\v1.0\powershell.exePowerShell程序的路径;-ExecutionPolicy ByPass -NoExit -Command为相关参数;'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1'Anaconda的一个powershell脚本;conda activate 'C:\ProgramData\Anaconda3'是激活base虚拟环境的命令。
在这里插入图片描述

类似与Anaconda 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虚拟环境。

  • 33
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值