Anaconda

Просто и понятно о том, как установить Anaconda на Mac и исправить страшную ошибку «conda command not found»

Необходимость Anaconda

Начав работать в области науки о данных, машинном обучении или искусственном интеллекте, вы быстро понимаете, что Anaconda вам действительно нужна. Да, вы можете пользоваться Jupyter Notebooks, Spyder или другой классной программой, но, так или иначе, с Anaconda столкнуться все-таки придется.

Не так давно, переустанавливая программы на компьютере, я вспомнила, как трудно было установить Anaconda в первый раз. Сам по себе процесс установки прошел без труда! В официальном руководстве все разжевано буквально по кусочкам: повторяйте определенные шаги и радуйтесь результату!

А в конце вам предлагается подтвердить, что установка прошла успешно, и напечатать команду conda list! Вот и все.

Но как бы не так.

Conda капут

В первый раз conda не заработала. Я не смогла найти дельных советов, как все исправить. Везде писали: подтвердите установку и начинайте работать.

Здесь вы сами по себе.

Нет ничего более печального, чем не иметь возможности открыть программу, которая вам очень нужна.

Делать первые шаги в машинном обучении и искусственном интеллекте и быть не в состоянии установить все необходимые инструменты — это ли не сущее зло? По мере того, как вы начинаете разбираться в языке и нужных вам командах, оказывается, что на просторах интернета можно найти множество простых ответов. Но ни один из них вам не поможет, если вы не разбираетесь в языке! А нагуглить нужные ответы не так-то и просто. Знаю это по себе.

Я работаю на MacOS (а конкретно — на Mojave) и активно пользуюсь терминалом. К тому же, у меня установлен Zsh. Потратив некоторое время на изучение вопроса, я нашла способ, как с помощью одной строки успешно установить Anaconda на Mac, даже пользуясь Zsh.

В чем же дело?

Как оказалось, сама установка выполнялась успешно, но возникал конфликт между Zsh и тем, как именно терминал «общался» с Anaconda. Причин могло быть великое множество, однако дело было в самом Zsh.

Решение

Когда я первый раз решила скачать Anaconda, то выбрала стандартную графическую установку программы для Mac. Сам по себе дистрибутив работал отлично, но он не в терминале.

Не желая сдаваться без боя, я удалила Anaconda и решила поставить ее заново через командную строку. Этот способ очень удобен, поскольку так вы можете вручную прописать, что ваш терминал будет взаимодействовать с Anaconda. В процессе установки выскочит подсказка: Do you wish the installer to initialize Anaconda3 by running conda init? («Хотите ли вы, чтобы установщик инициировал Anaconda3 через выполнение conda init?»).

Здесь так и напрашивается жирное yes.

Но это не помогло. Возможно, если вы не пользуетесь Zsh или Oh My Zsh, то Anaconda установится без проблем.

Но как же заставить ее работать, если вы изрядно пошаманили над терминалом?

Легко!

Вот простые шаги для успешной установки Anaconda и обхода страшного сообщения conda command not found.

Шаг 1: скачиваем Anaconda

Зайдите сюда. Прокрутите вниз до строки Anaconda 2019.03 for macOS Installer.

Вам нужно знать свою версию Python. Для этого пишем в терминале

python

Команда показывает версию Python 3.7.3

Вы можете выбрать графический установщик (то есть установить Anaconda как любую другую программу), либо установку через командную строку (то есть открыть терминал и печатать команды копипастом или вручную).

Мы остановимся на установке через командную строку. Для начала скачивания нажмите на ссылку под нужной вам версией Python.

Шаг 2: установка через командную строку

После завершения установки переходите в терминал.

Если у вас стоит Python 3.7, то выполните:

bash ~/Downloads/Anaconda3–2019.03-MacOSX-x86_64.sh

Для Python 2.7:

bash ~/Downloads/Anaconda2–2019.03-MacOSX-x86_64.sh

Внимание: если вы скачали Anaconda не в папку Downloads, то в командах нужно изменить путь к дистрибутиву.

Просмотрите лицензионное соглашение и нажмите Enter. В конце, после миллиона нажатий Enter, напечатайте yes, если принимаете лицензионное соглашение.

(Если вовремя не принять соглашение, то эта подсказка будет постоянно попадаться вам на глаза)

Если вас устраивает путь установки, то нажмите Enter. Вы можете изменить расположение или прервать установку нажатием CTRL-C. Запомните путь установки файлов! Он вам понадобится при возникновении ошибки.

А теперь выдохните и подождите. На экране будет происходить что-то непонятное. Затем вас спросят: Do you wish the installer to initialize Anaconda3 by running conda init? Конечно же, напишете yes.

«Спасибо за установку Anaconda!»

По завершении установки закройте окно терминала и откройте новое — так вступят в силу ваши изменения. Хотите убедиться, что все работает? Напечатайте conda listи посмотрите, что произойдет. Если все работает, то увидите что-то подобное:

Эта команда очень полезная. Она показывает, какие пакеты и версии установлены в вашей среде!

Если все работает, то поздравляю! Теперь можете пользоваться Anaconda, Jupyter Notebooks, Spyder и другими полезными штуками.

Шаг 3: conda command not found

А еще вы можете увидеть вот такое:

И решение подобной проблемы на удивление простое.

Решение. Шаг #1:

***ПЕРЕЗАПУСТИТЕ ТЕРМИНАЛ!!!***

(Об этом уже говорилось выше. И сами разработчики Anaconda признают, что наиболее частая проблема при установке — это именно нежелание обновить терминал)

Решение. Шаг #2:

Вам нужно выяснить, где расположена бинарная директория Anaconda, и какое у вас имя пользователя. Если вы внимательно читали подсказки при установке, то данная информация вам уже известна! Вам нужен тот самый путь установки, который мы обсуждали выше.

Если вы его не запомнили, то вполне возможно, что при стандартной установке программы нужной вам директорией в macOS окажется /Users/ (/home/ для Linux или \Users\ для Windows 10).

Если не знаете имя пользователя, то выполните:echo $USER

***Обновите!!***

Для исправления ошибки я всегда советую изменять PATH.

Однако разработчики Anaconda рекомендуют этого не делать!

Вот их краткое объяснение, почему:

«Если в вашей системе уже присутствуют программы с теми же именами файлов, что и в Anaconda, то изменение PATH может привести к возникновению ошибок. conda init устанавливает функцию «shell» conda и убирает из PATH все остальное. Получается, что в PATH остается только conda. Затем при запуске по умолчанию активируется базовая среда. Данный эффект похож на добавление нового PATH с небольшими, но важными отличиями:

— при активации файлы Anaconda в PATH всегда помещаются на передний план. С одной стороны, это хорошо, ведь так вы избежите лишней путаницы. С другой стороны, это плохо, поскольку вы можете потерять другие файлы, что приведет к поломке системы. Активация — это не самый долговечный способ решения проблемы. Отключить автоматическую активацию базовой среды можно через настройку auto_activate_base в condarc.

— активация не просто изменяет PATH. Она получает все скрипты activate.dll, которые могут устанавливать дополнительные переменные среды. Эти переменные необходимы для различных пакетов (например, GDAL). И такие пакеты не заработают без активации.

Поэтому вместо того, чтобы менять PATH, лучше следовать инструкциям в конце установки и не запускать conda init:

Вы увидите 2 команды:

1. eval “$(/home/msarahan/mc3_dummy/bin/conda shell.bash hook)”

2. conda init

Обратите внимание, что в шаге 1 имя оболочки было изменено с YOUR_SHELL_NAME на bash. Не забудьте задать правильное имя для своей оболочки».

Иначе говоря, изменение PATH может привести к серьезным последствиям. Поэтому лучше ограничиться активацией, ведь она не является чем-то постоянным и, в отличие от изменения PATH, разрешает выполнение других пакетов.

Таким образом, в конце установки вместо запуска первоначального решения:

export PATH=”/Users/myname/anaconda2/bin:$PATH”

Вам следует выполнять

eval “$(/home/msarahan/mc3_dummy/bin/conda shell.bash hook)”
 conda init

(Но обязательно измените директории расположения и оболочки!)

***Конец обновления***

Первоначальное решение:

Чтобы все заработало, вам нужно выполнить

export PATH=”/Users/myname/anaconda3/bin:$PATH”

(Не забудьте изменить myname на свое имя пользователя и при необходимости подкорректируйте путь к директории. Если вы посмотрите на строку выше, то увидите, что в процессе установки /Users/myname/anaconda3 заменилась на /Users/anneb/anaconda3. Остальное осталось неизменным).

Если у вас не Anaconda3, а Anaconda2, то выполните

export PATH=”/Users/myname/anaconda2/bin:$PATH”

или:

export PATH=”/Users/myname/anaconda/bin:$PATH”

при необходимости измените расположение файла и поменяйте myname.

А теперь попробуйте conda list!

Поздравляю!

У вас получилось!!!

Вы успешно установили Anaconda и теперь можете запустить ее из командной строки!

Напечатайте jupyter notebookи посмотрите, что получится!

Возможно Вам понравится:


Перевод статьи Anne Bonner: How to Successfully Install Anaconda on a Mac (and Actually Get it to Work)