conda 在 Windows 上的默认 shell 是 cmd, 而不是 PowerShell。 在 PowerShell 中使用一般的 conda 命令是可以 , 但无法使用 activate、deactivate 切换环境 , 这在日常使用中极其不便 , 为了切换环境 , 还要单独打开一个 cmd。
在 github 上一直都在讨论这个问题 , 而官方版本始终没有解决 。BCSharp 给出了 Powershell 脚本 PSCondaEnvs 解决了这一问题 。
可以直接使用 conda 通过他的 Anaconda Cloud 空间安装 。
conda install -n root -c pscondaenvs pscondaenvs
可是 , 在国内总是连接有问题 , 因而只能采用手动安装 , 把 github 的文件下载下来 , 将 activate.ps1,deactivate.ps1 和 invoke_cmdscript.ps1 三个文件拷贝到 Anaconda\Scripts 下面 。
加入后通过 PowerShell 就能够正常使用 activate 和 deactivate 了 。
然而 , 在使用 cmder 时出现另外一个问题 , 即环境切换成功 , 但无法在 Prompt 上显示当前环境名 , 如下图 。

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

Comments
comments powered by Disqus