(我在MacBook上使用anaconda)
默认情况下,conda将环境信息添加到命令提示符,如下所示:
$ source activate my_env
(my_env) $ source deactivate
$
可以使用
关闭和打开conda config --set changeps1 (true|false)
由于我的终端提示已经自定义,我想以不同的方式添加env信息,但不知道如何准确。
现在我在我的.bash_profile文件中使用了两个命令sac
和dac
来激活和停用envs,因此这次业余尝试添加了env_var
:
env_var=""
#activate env (default env = my_env)
sac() {
if [ -z $1 ];
then
ENV="my_env"
else
ENV="${1}"
fi
source activate ${ENV}
env_var="${ENV}"
}
#deactivate env
dac() {
source deactivate
env_var=""
}
env_info() {
if [[ ${env_var} == "" ]]
then
echo ""
else
echo "in ${env_var}"
fi
}
PS1="\u "
PS1+="$(env_info) \$";
哪个不起作用(我的bash知识只是基本的抱歉...)。
env_info
始终保持""
,无论我是否在终端中拨打sac
或dac
。
问题1:为什么代码无效?
问题2:或者是否有另一种方法可以获取当前的env-info - 为此目的 - 有用的格式?
conda info --envs
返回了很多信息......
答案 0 :(得分:4)
darthbith 的评论中建议的方法非常有效。变量$CONDA_DEFAULT_ENV
正是我所寻找的:
>>> source activate myEnv
>>> echo $CONDA_DEFAULT_ENV
myEnv
答案 1 :(得分:0)
打开文件~/.bashrc
。您将看到以下部分。
# added by Anaconda3 installer
#export PATH="/home/jim/anaconda3/bin:$PATH"
. /home/jim/anaconda3/etc/profile.d/conda.sh
conda activate
因此,以上conda activate
部分默认情况下正在激活base
。如果您不希望在默认终端中包含(base)
,则将conda activate
修改为conda deactivate
。这奇迹般地为我工作。
答案 2 :(得分:0)
要添加到 A.Wenn 的答案中,这就是我添加到自定义提示中的内容
PS1=""
# Add conda environment to prompt
if [ ! -z "$CONDA_DEFAULT_ENV" ]
then
PS1+="($CONDA_DEFAULT_ENV) "
fi