概述
Anaconda安装完成后,开始菜单所有程序``Anaconda3中会添加Anaconda Prompt和Anaconda PowerShell Prompt两个菜单项。
这两个菜单项是快捷方式。通过查看这两个快捷方式的属性可知:
Anaconda Promp对应的命令为%windir%\System32\cmd.exe "/K" C:\ProgramData\Anaconda3\Scripts\activate.bat C:\ProgramData\Anaconda3Anaconda 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.bat即Anaconda虚拟环境的激活脚本;C:\ProgramData\Anaconda3即Anaconda虚拟环境base的目录。
(base) C:\Users\Administrator>conda env list
# conda environments:
#
base * C:\ProgramData\Anaconda3
foo C:\ProgramData\Anaconda3\envs\foo
相当于先打开CMD程序,然后激活Anaconda的base虚拟环境。下面我们做一个验证!
- 首先运行
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.exe为PowerShell程序的路径;-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虚拟环境。
本文详细解释了Anaconda Prompt和AnacondaPowerShellPrompt的原理,如何通过它们管理和切换默认虚拟环境,以及如何修改这两个快捷方式的属性来个性化工作流。
1万+





