Как активировать среду conda в моем .bashrc?


18

Я использую Conda для управления пакетами в Python. У меня есть базовая среда, которую я использую почти все время, и я хочу, чтобы она загружалась по умолчанию при открытии терминала. Как мне настроить .bashrcзагрузку среды?

До сих пор я пытался source activate myenv, но я понимаю, что мне нужно указать фактический путь в .bashrcфайле. Я тогда попробовал source ~/anaconda3/envs/myenv/bin/activate. Хотя это не приводит к ошибке, оно также не активирует среду. Я использую Ubuntu 16.04.

Ответы:


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 состоял в том, чтобы изменить PATH в вашем файле ~ / .bashrc. Вы должны вручную удалить строку, которая выглядит как

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

^^^ Приведенная выше строка НЕ ​​ДОЛЖНА быть в вашем файле ~ / .bashrc! ^^^


Метод softlink - это RAD!
19

Если добавление в .bashrc не работает, попробуйте добавить его в файл .profile.
oya163

4

Во время установки Anaconda должна быть запись, добавленная в файл .bashrc, подобный этому

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

если его там нет, проверьте установку, запустив which conda, и обновите .bashrc, указав путь до bin.

Это указывает на исполняемый файл conda и устанавливает путь для обработки активации conda.

Добавьте эту строку после команды экспорта:

source activate <your_environment>

оттуда вы можете source ~/.bashrcзагрузить окружение в текущую оболочку.


1

Для использования bash:

$ cd YOUR_PATH_ANACONDA/bin
$ ./conda init bash

Это автоматически отредактирует ваш .bashrc.

Reload:

$ source ~/.bashrc

Тест (установить Spyder):

$ conda install -c anaconda spyder

Run Spyder

$ spyder

1

Правильное исправление

(работает для версий> = 4.6)

find . -type f -name 'conda' проверьте, где находится бинарный файл conda и затем перейдите к нему или просто укажите полный путь и выполните

conda config --set auto_activate_base true

Чтобы деактивировать, просто сделайте то же самое, но с ложным. Очевидно:

conda config --set auto_activate_base false

Quick & Dirty Fix # 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, вы можете удалить комментарии, но я считаю их полезными в качестве разделителей.

Quick & Dirty Fix # 2

Удалите все это с помощью вашей любимой команды удаления ( rm -rf ~/miniconda3), снова запустите сценарий установки и обратите внимание на приглашение, так как оно спросит вас, хотите ли вы запустить его автоматически.

Что бы ни качало вашу лодку :)


0

Если вы хотите, чтобы среда conda была активирована по умолчанию при запуске нового терминала bash, вы можете добавить в свой ~/.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

По сути, мы добавляем binкаталог вашей среды conda в качестве первой записи в вашей переменной PATH, что, по сути, и делает activateвспомогательный скрипт. После этого, когда вы открываете новый терминал bash, среда conda будет «активирована» / «включена» по умолчанию.

Обратите внимание, что вы можете не видеть (myenv)префикс в приглашении bash, как если бы вы это делали source activate myenv. Если вы хотите, чтобы префикс к вашему приглашению также отображался, добавьте следующую строку в ваш ~/.bashrcфайл:

export PS1="(myenv)"$PS1

Где (myenv)вы можете указать любое другое имя, которое будет отображаться в качестве префикса в приглашении bash.


Для меня это работает, но conda info --envsвсе еще показывает rootокружающую среду как текущую. Есть ли причина, по которой я не могу просто добавить source activate py34(py34 - это имя моего окружения) к моему ~ / .bashrc? Кажется, это работает, но есть ли причина, по которой это не было рекомендовано?
BStateham

Убедитесь, что PATHпеременная указывает на binпапку в папке среды conda, а не на папку base / root bin. Например: ~/anaconda3/envs/myenv/binи нет ~/anaconda3/bin) Да. Вы можете просто добавить папку anaconda bin (например:) ~/anaconda3/binв системный PATH, а затем source activate ENV_NAMEв ваш ~/.bashrcили ~/.bash_profile. Это не было рекомендовано, потому что файлы конфигурации ( ~/.bashrcили ~/.bash_profile) сами были получены и не выполнялись при открытии нового терминала bash.
Правин Паланисами

0

Это может быть где-то выше (но я сначала ошибся). Важно, чтобы в вашем файле bashrc вы сначала экспортировали путь к conda. Таким образом, путь к Конде (или миниконде и т. Д.) Будет выше 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-деньги

да "~" это то, что я имею в виду. поэтому, когда вы видите, что $ в вашем домашнем окружении просто пытается объяснить, чтобы кто-нибудь мог понять, жаль, что вы проголосовали за знак доллара, поскольку это могло бы быть полезным применительно к актуальному вопросу ...
Алиса

К сожалению для меня, я прокомментировал, но не понизил (так что теперь я получаю последствия) .. В любом случае, как кто-то может понять, ~$как правильный путь, когда это даже не путь?
J-

Хорошо, точка взята, я постараюсь быть более "конкретным"
Алиса
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.