В этой статье мы будем устанавливать Anaconda, управлять пакетами python, создавать отдельные среды conda и делиться ими через файл conda YAML. Мы рассмотрим большинство из этих тем в следующем порядке:

  • Что такое Anaconda и почему я должен беспокоиться об этом?
  • Установка Anaconda
  • Создание сред с помощью Conda
  • Управление пакетами через Conda
  • Сохранение и загрузка сред
  • Отображение, совместное использование и удаление сред
  • Рекомендации

Прежде всего, что такое Anaconda и почему я должен об этом беспокоиться?
Вероятно, у вас уже установлен Python, и вы задаетесь вопросом, зачем вам это вообще нужно. Во-первых, поскольку Anaconda поставляется с набором пакетов для анализа данных, у вас будет все готово для начала работы с данными. Во-вторых, использование conda для управления вашими пакетами и средами уменьшит будущие проблемы, связанные с различными библиотеками, которые вы будете использовать.
В большинстве реальных проектов Data Science широко используются пакеты и среды на основе conda, и я лично предпочтительнее установка пакетов на основе conda и обслуживание проекта, а затем установка и обслуживание пакетов непосредственно на основе PIP.
Итак, почему именно Anaconda?
Anaconda - это дистрибутив пакетов, созданный для науки о данных. Он поставляется с conda, пакетом и менеджером среды. Обычно мы использовали conda для создания сред для изоляции наших проектов, которые используют разные версии Python и / или разные версии пакетов. Мы также используем его для установки, удаления и обновления пакетов в наших проектных средах. Когда вы загружаете Anaconda в первый раз, он поставляется с conda, Python и более чем 150 научными пакетами и их зависимостями. Anaconda - это довольно большая загрузка (~ 500 МБ), потому что она поставляется с наиболее распространенными пакетами для обработки данных в Python, для людей, которые консервативны в отношении дискового пространства, есть также Miniconda, меньший дистрибутив, который включает только conda и Python. Вы по-прежнему можете установить любой из доступных пакетов с помощью conda, которая по умолчанию входит в стандартную версию. Conda - это программа, которую мы будем использовать исключительно из командной строки, поэтому, если вам неудобно ее использовать, ознакомьтесь с этими обучающими видеороликами на Lynda.com Учебник по командной строке для Windows и Основы командной строки Linux для Mac OSX / Linux »

Установка Anaconda
Anaconda доступна для Windows, Mac OS X и Linux. Вы можете найти программы установки и инструкции по установке на странице https://www.continuum.io/downloads. Если на вашем компьютере уже установлен Python, это ничего не сломает. Вместо этого в ваших скриптах и ​​программах будет использоваться Python по умолчанию, который поставляется с Anaconda. Выберите версию Python 3.5, вы можете установить версии Python 2 позже. Кроме того, выберите 64-разрядный установщик, если у вас 64-разрядная операционная система, в противном случае используйте 32-разрядный установщик. Идите вперед и выберите подходящую версию, затем установите ее. Продолжайте позже!
После установки вы автоматически окажетесь в среде conda по умолчанию со всеми установленными пакетами, которые вы можете увидеть ниже. Вы можете проверить свою собственную установку, введя список conda в свой терминал.
Создание сред с помощью Conda
Conda можно использовать для создания сред для изоляции ваших проектов. Чтобы создать среду, используйте

conda create -n env_name list of packages

в вашем терминале. Здесь -n env_name устанавливает имя вашей среды (-n для имени), а список пакетов - это список пакетов, которые вы хотите установить в среде. Например, чтобы создать среду с именем my_env и установить в ней numpy, введите

conda create -n my_env numpy

При создании среды вы можете указать, какую версию Python установить в среде. Это полезно, когда вы работаете с кодом как на Python 2.x, так и на Python 3.x. Чтобы создать среду с определенной версией Python, сделайте что-нибудь вроде

conda create -n py3 python=3

or

conda create -n py2 python=2

Чтобы установить определенную версию, используйте

conda create -n py python=3.3

для Python 3.3.
Создав среду, используйте

source activate my_env

войти в него на OSX / Linux. В Windows используйте

activate my_env

Когда вы находитесь в среде, вы увидите название среды в строке терминала. Что-то вроде

(my_env) ~ $

В среде по умолчанию установлено всего несколько пакетов, плюс те, которые вы установили при ее создании. Вы можете проверить это с помощью команды

conda list

Установка пакетов в среде такая же, как мы видели раньше:

conda install package_name

Только на этот раз определенные пакеты, которые вы устанавливаете, будут доступны, только когда вы находитесь в среде. Чтобы покинуть среду, введите
В OSX / Linux:

source deactivate

В Windows:

deactivate

Управление пакетами через Conda
После установки Anaconda управлять пакетами становится довольно просто. Чтобы установить пакет, введите

conda install package_name

в вашем терминале. Например, чтобы установить numpy, введите

conda install numpy

Сохранение и загрузка сред
Вы можете установить несколько пакетов одновременно. Что-то вроде

conda install numpy scipy pandas

установит все эти пакеты одновременно. Также можно указать, какую версию пакета вы хотите, добавив номер версии, например

conda install numpy=1.10

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

conda install scipy

Conda также установит numpy, если он еще не установлен.
Большинство команд довольно интуитивно понятны. Для удаления используйте

conda remove package_name

Чтобы обновить пакет

conda update package_name

Если вы хотите обновить все пакеты в среде, что часто бывает полезно, используйте

conda update --all

И наконец, чтобы перечислить установленные пакеты, снова

conda list

Если вы не знаете точное название пакета, который ищете, попробуйте выполнить поиск с помощью

conda search search_term

Например, если вы хотите установить пакет, который читает и записывает файлы Excel, но не уверены в точном имени пакета. вы можете попробовать выполнить поиск по ключевому слову excel

conda search excel

Он возвращает список доступных пакетов записи Excel с соответствующим именем пакета, который я лично рекомендую, XlsxWriter.

Сохранение, перечисление, совместное использование и удаление сред

Сохранение и совместное использование сред:

Действительно полезная функция - совместное использование сред, чтобы другие могли установить все пакеты, используемые в вашем коде, с правильными версиями. Вы можете сохранить пакеты в файл YAML с помощью

conda env export > environment.yaml

Первая часть записывает все пакеты в среде, включая версию Python.
Выше вы можете увидеть имя среды и список всех зависимостей (вместе с версиями). Вторая часть команды экспорта

> environment.yaml

записывает экспортированный текст в YAML-файл environment.yaml. Теперь к этому файлу можно предоставить общий доступ, и другие смогут создать ту же среду, что и вы для проекта.
Чтобы создать среду из файла среды, используйте

conda env create -f environment.yaml

Это создаст новую среду с тем же именем, которое указано в environment.yaml.

Список сред:

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

conda env list

чтобы перечислить все созданные вами среды. Вы должны увидеть список сред. Рядом со средой, в которой вы находитесь, будет звездочка. Среда по умолчанию, среда, используемая, когда вы не в ней, называется root.
Удаление Среды:
Если есть среды, которые вы больше не используете

conda env remove -n env_name

удалит указанную среду (здесь с именем env_name).
Рекомендации

Первая хорошая практика:
При использовании anaconda имеет 2 отдельные среды, одну для Python 2, а другую для Python 3.
например, вы можете использовать

conda create -n py2env python=2

а также

conda create -n py3env python=3

для создания двух отдельных сред: py2env и py3env. Теперь у вас может быть общая среда использования для каждой версии Python. В каждой из этих двух отдельных сред версий Python вы должны установить большинство стандартных пакетов науки о данных numpy, scipy, pandas, matplotlib и т. Д.

Вторая рекомендация:
При публикации кода на GitHub создайте файл среды и включите его в репозиторий. Это упростит установку всех зависимостей для вашего кода. В идеале вы также должны включить файл pip requirements.txt для людей, которые не используют conda, используя

pip freeze

Это все для быстрого старта. Главное - продолжать практиковаться в использовании вышеупомянутых команд.

Надеюсь, эта статья поможет вам вдвое сократить время, затрачиваемое на управление пакетами python, и поможет вам быстро начать использовать виртуальные среды anaconda и управление пакетами для повседневной среды проекта python.

Пожалуйста, дайте мне знать свои мысли, вопросы в разделе комментариев. Я был бы очень признателен за отзывы об этой статье и предложениях по ее улучшению.

А пока Happy Thinking…