Anaconda Prompt和Anaconda PowerShell Prompt工作原理
概述
Anaconda
安装完成后,开始
菜单所有程序``Anaconda3
中会添加Anaconda Promp
t和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.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
虚拟环境。
更多推荐
所有评论(0)