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


Comments

comments powered by Disqus
share -