如何决定是否在Ubuntu终端启动时使用miniconda

时间:2019-07-14 20:29:42

标签: python bash ubuntu conda miniconda

我试图以一种不会干扰repl的方式在ubuntu上安装miniconda,除非我愿意。从安装shell脚本看来,这似乎并不容易。安装(如果允许)将其添加到python3文件中(该文件将在您打开新的终端会话时设置终端环境):

~/.bashrc

这会强制每个终端会话使用minicondas python可执行文件和环境。您如何将其设为可选?

我找到了一种方法,并认为我会分享...

2 个答案:

答案 0 :(得分:1)

要让我在默认系统python和miniconda之间进行选择,我将〜/ .bashrc conda部分更改为如下所示:

# # >>> MODIFIED conda initialize >>>

# !! MOD !! ask user if they wish to use miniconda
read -p "Use miniconda for python3? [y/any other input]" condaAnswer
echo "$condaAnswer"
if [ "$condaAnswer" = "y" ]; then  

    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/home/pete/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
    else
        if [ -f "/home/pete/miniconda3/etc/profile.d/conda.sh" ]; then
            . "/home/pete/miniconda3/etc/profile.d/conda.sh"
        else
            export PATH="/home/pete/miniconda3/bin:$PATH"
        fi
    fi
    unset __conda_setup

# !! MOD !! ask user if they wish to use miniconda
fi
# <<< conda initialize <<<

开始时的mod:

read -p "Use miniconda for python3? [y/any other input]" condaAnswer
echo "$condaAnswer"
if [ "$condaAnswer" = "y" ]; then

这意味着每当您打开一个新的终端会话时,首先发生的事情是询问您是否要使python环境成为miniconda。用户输入“ y”,然后按Enter以使用miniconda python环境。其他任何输入都会跳过conda初始化。

修改的结尾只是if语句的结束:

fi

希望这对不想像我一样完全收购conda的人很有用。我的下一个想法是创建一个总是在快捷方式中进行的conda初始化的终端快捷方式,因此我可以从安装的快速启动栏中选择我使用的终端环境。我将在到达时添加有关该信息的详细信息,或者如果其他人对此有信息,请发表:)

Pete

答案 1 :(得分:0)

替代:改为添加新的自定义终端启动器

正如我所承诺的,我发现了如何制作一个新的终端启动器,该终端将自动初始化miniconda并使您的普通终端启动器不受影响。

第一直接在您的主文件夹中创建一个新文件,用于初始化新启动的迷你康达终端。

我将其命名为“ .bashrc-conda”,它将整齐地粘贴在标准bash shell初始化文件“ .bashrc”旁边,并使其像原始文件一样隐藏。如果要从终端执行此操作,请运行以下命令:

> ~/.bashrc-conda

将以下行添加到新文件的顶部:

source ~/.bashrc

这将按照常规的初始化过程启动新的shell。

然后将miniconda初始化脚本添加到新文件〜/ .bashrc-conda中,我们已经添加了以下行:

# # >>> conda initialize >>> 

# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/pete/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/pete/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/pete/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/pete/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup

# <<< conda initialize <<<

现在,在执行常规初始化过程之后,将进行conda初始化。

注意:如果您允许minocnda安装程序将上述脚本添加到〜/ .bashrc,请确保也从那里删除它,以便常规终端的行为与miniconda到来之前的行为相同。

第二,我们需要添加一个新的终端配置文件...

打开任何终端窗口,单击菜单按钮(三条水平线),然后单击首选项。

在左列中,单击“配置文件”旁边的“ +”符号,然后输入新的迷你康达配置文件的名称,在本示例中,我们假设您使用的是“ Conda”。

再次在左列中,单击新创建的配置文件“ Conda”,然后选择“命令”选项卡。

勾选“运行自定义命令而不是我的shell”复选框,然后在下面的“自定义命令”文本框中输入此内容:

bash --rcfile ~/.bashrc-conda

关闭首选项。

您现在拥有一个终端配置文件,该配置文件使用我们的自定义.bashrc-conda脚本启动外壳。

最后创建新的桌面小部件,该小部件将启动您的自定义终端。

在“〜/ .local / share / applications”中创建一个新文件。如果在文件资源管理器中看不到它,则需要勾选“显示隐藏的文件”选项。对于我们的示例,我们将此文件称为“ terminal-conda.desktop”。如果要在终端中创建此文件,请运行以下命令:

> ~/.local/share/applications/terminal-conda.desktop

将其复制并粘贴到该文件中

[Desktop Entry]
# VERSION=3.32.1
Name=Conda Terminal
Keywords=shell;prompt;command;commandline;cmd;
Exec=gnome-terminal --profile="Conda"
Icon=gnome-terminal
Type=Application
StartupNotify=true
Actions=new-window;preferences;

[Desktop Action new-window]
Name=New Window
Exec=gnome-terminal --window

[Desktop Action preferences]
Name=Preferences
Exec=gnome-terminal --preferences

保存后,您应该能够以通常的方式搜索和找到应用程序“ Conda Terminal”。这个新的“应用程序”只是使用我们新的Conda配置文件启动gnome终端窗口,如上所述,该窗口使用我们的自定义.bashrc-conda文件启动bash。如果看不到,则说明我们刚刚创建的文件有误:“〜/ .local / share / applications / terminal-conda.desktop”。要检查的一件事是,任何行上都没有尾随空格。

假设您可以看到它,单击它应使用额外的miniconda初始化脚本启动您的终端。您可以“添加到收藏夹”将其添加到左侧的启动器栏(在ubuntu中又叫什么?)。

当前问题

当前,新终端将添加到与左侧启动器栏中的常规终端窗口小部件关联的窗口列表。如果有人知道如何强制他们在新的经过修改的终端启动器小部件下打开,那将是很好的。