conda在Windows上的默认shellcmd,而不是PowerShell。在PowerShell中使用一般的conda命令是可以,但无法使用activatedeactivate切换环境,这在日常使用中极其不便,为了切换环境,还要单独打开一个cmd。

github上一直都在讨论这个问题,而官方版本始终没有解决。BCSharp给出了Powershell脚本PSCondaEnvs解决了这一问题。

可以直接使用conda通过他的Anaconda Cloud空间安装。

conda install -n root -c pscondaenvs pscondaenvs

可是,在国内总是连接有问题,因而只能采用手动安装,把github的文件下载下来,将activate.ps1deactivate.ps1invoke_cmdscript.ps1三个文件拷贝到Anaconda\Scripts下面。

加入后通过PowerShell就能够正常使用activatedeactivate了。

然而,在使用cmder时出现另外一个问题,即环境切换成功,但无法在Prompt上显示当前环境名,如下图。

Fail to set prompt

cmder的issues里有人提出了一种解决方法,即将vendor\profile.ps1中最后一行,将prompt设定为常量的代码注释掉,这样便可以正常使用了。

Work Fine