Просто и понятно о том, как установить 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?»).
Но это не помогло. Возможно, если вы не пользуетесь Zsh или Oh My Zsh, то Anaconda установится без проблем.
Но как же заставить ее работать, если вы изрядно пошаманили над терминалом?
Легко!
Вот простые шаги для успешной установки Anaconda и обхода страшного сообщения conda command not found
.
Шаг 1: скачиваем Anaconda
Зайдите сюда. Прокрутите вниз до строки Anaconda 2019.03 for macOS Installer.
Вам нужно знать свою версию Python. Для этого пишем в терминале
python
Вы можете выбрать графический установщик (то есть установить 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
Просмотрите лицензионное соглашение и нажмите 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:
***ПЕРЕЗАПУСТИТЕ ТЕРМИНАЛ!!!***
Решение. Шаг #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”
Если у вас не Anaconda3, а Anaconda2, то выполните
export PATH=”/Users/myname/anaconda2/bin:$PATH”
или:
export PATH=”/Users/myname/anaconda/bin:$PATH”
при необходимости измените расположение файла и поменяйте myname
.
А теперь попробуйте conda list
!
Поздравляю!
У вас получилось!!!
Вы успешно установили Anaconda и теперь можете запустить ее из командной строки!
Напечатайте jupyter notebook
и посмотрите, что получится!
Возможно Вам понравится:
- Настройка Data Science окружения на вашем компьютере
- Руководство по машинному обучению для новичков
- Почему Python используется для машинного обучения?
Специально для сайта ITWORLD.UZ. Новость взята с сайта NOP::Nuances of programming