【发布时间】:2019-08-28 18:52:45
【问题描述】:
启动新shell时,未配置PATH环境变量
适当地。目录anaconda3/bin 或miniconda3/bin 排在第二位
仅位置,而不是 PATH 变量中的第一个位置。这可以是
由conda deactivate 解决并再次激活它。
这个问题已经被问过好几次了(例如here和here)
但现有的问题要么很老,要么集中在使用
source activate env-name。总而言之,我没有找到可以解决我的问题的答案
问题。
当我启动一个新的 shell 时,基础环境被激活。相关的
我的.bashrc 的 sn-p 如下所示:
condaexe="/home/$USER/.miniconda3/bin/conda"
condash="/home/$USER/.miniconda3/etc/profile.d/conda.sh"
__conda_setup="$($condaexe 'shell.bash' 'hook' 2> /dev/null)"
# shellcheck disable=SC2181
if [[ $? -eq 0 ]]
then
eval "$__conda_setup"
elif [[ -f "$condash" ]]
then
source "$condash"
fi
unset __conda_setup condaexe condash
那么,PATH变量定义如下:
(base)$ echo $PATH
/home/user/.local/bin:/home/user/.miniconda3/bin:/home/user/.miniconda3/condabin:/home/user/workspace/my-project/:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
(base)$ conda deactivate && echo $PATH
/home/user/.local/bin:/home/user/.miniconda3/condabin:/home/user/workspace/my-project/:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ conda activate base && echo $PATH
/home/user/.miniconda3/bin:/home/user/.local/bin:/home/user/.miniconda3/condabin:/home/user/workspace/my-project/:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
(base)$
注意/home/user/.local/bin 包含两次;一次又一次
在 Miniconda3 目录之后。
我尝试通过将以下 sn-p 附加到 .bashrc 来调试问题:
echo $CONDA_PROMPT_MODIFIER
echo $PATH
这会产生
(base)
/home/user/.miniconda3/bin:/home/user/.miniconda3/condabin:/home/user/workspace/my-project:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
这完全没问题,但不知何故,在 .bashrc 之后进行了修改。
注意这里/home/user/.local/bin 只包含一次。
这里发生了什么?如何设置 Bash/Conda 以获得正确定义的 PATH 环境变量?
【问题讨论】:
-
你是如何启动 shell 的 - 是否还有一个
.bash_profile也正在加载(例如,bash -l)?conda init -vv -d输出什么?它是否建议对.bashrc进行进一步更改?另外,您是否自己在 .bashrc 中编写了该部分的代码? - 它与我以前见过的标准模板不匹配。conda info的输出可能很有用。 -
感谢您的评论。你提到
.bash_profile让我走上了正轨。