Conda激活/停用环境破坏PATH

问题描述 投票:2回答:4

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

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

Please work ls, come on

python bash path anaconda conda
4个回答
1
投票

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

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


2
投票

激活/取消激活脚本中有一些错误,我在我称之为activate.cygwin和deactivate.cygwin的版本中修复了这些错误。

  • activate.cygwin:修复了conda命令返回一个字符串的2个地方,该字符串在结尾处返回“\ r \ n”,这会混淆处理。
  • deactivate.cygwin:修复/ cygdrive / ...的转换以避免错误CondaValueError:找不到环境:/ cygdrivec:\ Users \ rjp \ Anaconda2 \ envs ...

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


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


0
投票

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

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

/从/users/陈_小/斌:/名为64/斌:/US人/local/斌:/US人/斌:/斌:/名为64/斌:/US人/斌:/从/users/陈_小/斌....(more)

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

/C/users/陈_小/mini con大3/E女士/snowflakes:(巴拉拉巴拉..):C:\users\陈_小\mini con大3\library\斌;C:\users\陈_小\mini con大3;....(more)

我假设git bash不识别像C:\program files...这样的pathes,然后在最后一个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
© www.soinside.com 2019 - 2024. All rights reserved.