Conda激活/停用环境破坏PATH

时间:2017-07-14 05:44:51

标签: python bash path anaconda conda

我发现当我创建Conda环境source activate environment然后停用该环境source deactivate environment时,我的本机bash命令不再起作用。

我在启用环境之前附加了ls工作的图像,之后没有。我认为这是因为我的PATH - 但我是一个新手,我不确定具体要解决什么。我在Windows上的Git Bash中这样做。 Anaconda 3和Python 3.5。

Please work ls, come on

4 个答案:

答案 0 :(得分:2)

激活/取消激活脚本中存在一些错误,我在我调用activate.cygwin和deactivate.cygwin的版本中修复了这些错误。

  • activate.cygwin:修复conda命令返回字符串的2个地方,返回" \ r"最后会混淆处理。

  • deactivate.cygwin:修复/ cygdrive / ...的转换以避免错误 CondaValueError:找不到环境:/ cygdrivec:\ Users \ rjp \ Anaconda2 \ envs ...

我已将修改后的脚本发布到https://bitbucket.org/snippets/plevin/。请参阅activate.cygwin顶部的说明。

答案 1 :(得分:1)

很可能您的conda环境正在替换本地bash配置文件中定义的参数和环境变量。我相信如果你打开一个新的环境(bash会话),你会发现一切正常。

我建议您在停用环境后添加一个命令来重新加载bash配置文件,以便再次应用配置文件变量值。它应该解决问题。

答案 2 :(得分:1)

停用conda环境的正确方法是运行conda deactivate,而不是source deactivate environment

来源:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html?highlight=activate#deactivating-an-environment

答案 3 :(得分:0)

我在Windows 10中使用Git Bash并遇到了同样的问题。之前的答案对我不起作用,可能是因为我没有在〜/ .bash_profile和〜/ .bashrc中设置任何路径。

我在一个新的git bash中检查了我的路径变量,它看起来像:

  

/ C /用户/ chen_x / bin中:/ mingw64 / bin中:在/ usr / local / bin中:在/ usr / bin中:/ bin中:/ mingw64 / bin中:在/ usr / bin中:/ C /用户/ chen_x / bin中....(更多)

. C:/Users/chen_x/Miniconda3/Scripts/activate C:/Users/chen_x/Miniconda3. activate snowflakes之后,路径变为:

  

/ C /用户/ chen_x / Miniconda3 / ENVS /雪花:(blalbla ..):C:\用户\ chen_x \ Miniconda3 \库\ BIN; C:\用户\ chen_x \ Miniconda3; ....(更)

我认为git bash无法识别C:\program files...之类的广告,然后在最后一个C:/Users/chen_x/Miniconda3/Scripts/activate命令(约第78行)之后将以下行添加到EXPORT PATH=

export PATH="$($_CONDA_PYTHON -c "import re; p=re.sub(r'\\\', r'/', r'$PATH'); p=re.sub('(;|:)([A-Z]):', lambda m: ':/'+m.group(2).lower(), p); print(p)")"

有效。

顺便说一句,我创建了一个〜/ condaenv脚本来启动conda环境:

#!/bin/bash
. C:/Users/chen_x/Miniconda3/Scripts/activate C:/Users/chen_x/Miniconda3

以下是:

. ~/condaenv
. activate snowflakes