如何在.bashrc中激活conda环境?


18

我使用Conda在Python中进行软件包管理。我有一个几乎所有时间都在使用的基本环境,并且我希望在打开终端时默认加载它。如何设置.bashrc加载环境?

到目前为止,我尝试了source activate myenv,但是我的理解是我需要在.bashrc文件中提供实际路径。然后我尝试了source ~/anaconda3/envs/myenv/bin/activate。尽管这不会引发错误,但是也不会激活环境。我正在运行Ubuntu 16.04。

Answers:


21

似乎已接受的答案可能已过时。从文档

如果您的外壳是Bash或Bourne变体,请使用以下命令为当前用户启用conda

$ echo ". /home/<user>/miniconda3/etc/profile.d/conda.sh" >> ~/.bashrc

或(对于所有用户)启用conda

$ sudo ln -s /home/<user>/miniconda3/etc/profile.d/conda.sh /etc/profile.d/conda.sh

上面的选项将永久启用'conda'命令,但不会将conda的基础(根)环境放在PATH上。为此,运行

$ conda activate

在您的终端中,或将基本环境永久放在PATH上,请运行

$ echo "conda activate" >> ~/.bashrc

在conda 4.4之前,建议的激活conda的方法是修改〜/ .bashrc文件中的PATH。您应该手动删除看起来像这样的行

export PATH="/home/<user>/miniconda3/bin:$PATH"

^^^上面的行应该不再位于〜/ .bashrc文件中!^^^


软链接方法是RAD!
abalter

如果无法添加.bashrc,请尝试将其添加到.profile文件中。
oya163

4

在Anaconda安装过程中,应该像这样添加一个条目.bashrc文件

export PATH="/home/<user>/anaconda3/bin:$PATH"

如果不存在,请通过运行验证安装which conda,并使用bin之前的路径更新.bashrc。

这指向“ conda”可执行文件,并设置处理conda激活的路径。

在导出命令后添加以下行:

source activate <your_environment>

从那里您可以source ~/.bashrc将环境加载到当前shell。


1

对于bash使用:

$ cd YOUR_PATH_ANACONDA/bin
$ ./conda init bash

这将自动编辑您的.bashrc

重新加载:

$ source ~/.bashrc

测试(安装Spyder):

$ conda install -c anaconda spyder

运行Spyder

$ spyder

1

正确修复

(适用于> = 4.6的版本)

find . -type f -name 'conda' 检查conda二进制文件所在的位置以及cd的位置,或者只给出完整的路径并运行

conda config --set auto_activate_base true

要停用,请执行相同的操作,但要使用false。明显:

conda config --set auto_activate_base false

快速与肮脏修复#1

将以下内容粘贴到您的.bashrc中,替换为显而易见的内容,并提供您的.bashrc(source .bashrc)。应该适用于Miniconda3版本> = 4.6

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

这是从我自己的.bashrc中剪切和粘贴的,您可以删除注释,但我发现它们很方便用作分隔符。

快速与肮脏修复#2

使用您最喜欢的删除命令(rm -rf ~/miniconda3)删除整个内容,再次运行安装脚本,并注意提示,因为如果要自动启动它会提示您。

随便你的船:)


0

如果您希望在启动新的bash终端时默认激活conda环境,则可以将以下行添加到~/.bashrc文件中:

export PATH=<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>:$PATH

您应该<PATH_TO_YOUR_CONDA_ENVIRONMENT/bin>在上面的行中替换为conda环境的完整路径。

您可以将以下行添加到~/.bashrc文件中:

export PATH=~/anaconda3/envs/myenv/bin:$PATH

基本上,我们将binconda环境的目录添加为PATH中的第一个条目,这实际上是activate便捷脚本将执行的操作。此后,当您打开新的bash终端时,默认情况下conda环境将被“激活” /“启用”。

请注意,您可能不会像看到的那样看到(myenv)bash提示符的前缀source activate myenv。如果您还希望在提示符下显示前缀,请在~/.bashrc文件中添加以下行:

export PS1="(myenv)"$PS1

(myenv)您可以提供的任何自定义名称在哪里,将显示为bash提示符的前缀。


对我来说,这可行,但conda info --envs仍显示root当前环境。有什么理由不能将source activate py34〜/ .bashrc 添加(py34是我的环境名称)吗?似乎可行,但是否由于某些原因不建议这样做?
BStateham

确保PATH变量指向的bin是conda环境文件夹下的文件夹,而不是base / root bin文件夹。例如:~/anaconda3/envs/myenv/binand not ~/anaconda3/bin)是。您只需将anaconda bin文件夹(例如:)添加~/anaconda3/bin到系统PATH中,然后source activate ENV_NAME~/.bashrc或中~/.bash_profile。不建议这样做,因为配置文件(~/.bashrc~/.bash_profile)本身是来源,并且在打开新的bash终端时不会执行
Praveen Palanisamy,

0

这可能在上面(但我首先弄错了)。重要的是,首先在bashrc文件中导出conda路径。因此,通向conda(或miniconda等)的路径将超出这conda activate <env>条线。格式如下:

export <path to conda bin>

<any other conda initializations>

conda activate <env>


-1

要激活conda环境,只需将其放在.bashrc文件的末尾以打开.bashrc打开终端,请转到主目录。运行/输入nano .bashrc,在提示符后将以下内容放在文件末尾:

conda activate my_environment_name

现在保存.bashrc文件(Ctrl+ Shift+ o),按Enter键。


尽管我不是conda专家,但我可以告诉您~$,除了~$(什么都没有)什么都没有。~$HOME将参考/home/user/
j-money

是的“〜”是我所指的。因此,当您在家庭环境中看到〜$只是在试图解释以便让任何人都可以理解时,可惜您对美元符号投了反对票,因为这可能与实际存在的问题有关……
爱丽丝

对我来说不幸的是,我发表了评论,但并没有拒绝投票(因此我得到了后果)。无论如何,~$即使没有一条道路,任何人都无法理解为正确的道路?
j-money

好的观点,我将尝试并变得更加“具体”
爱丽丝
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.