Среды Conda помогает управлять зависимостями и изолировать проекты. Также среды conda не зависят от языка, т.е. они поддерживают языки, отличные от Python.

В этом руководстве мы рассмотрим основы создания и управления средамиCondaдля Python

Conda vs. Pip vs. Venv — в чем разница?

  • pip — это менеджер пакетов для Python.
  • venv — является менеджером среды для Python.
  • conda — является одновременно менеджером пакетов и среды и не зависит от языка.

venv создает изолированные среды только для разработки на Python, а conda может создавать изолированные среды для любого поддерживаемого языка программирования.

Примите во внимание, что pip устанавливает только пакеты Python из PyPI, с помощью conda можно

  • Установить пакеты (написанные на любом языке) из репозиториев, таких как Anaconda Repository и Anaconda Cloud.
  • Установить пакеты из PyPI, используя pip в активной среде Conda.

Что такое Anaconda? Обо всем по порядку…

Anaconda — это дистрибутивы Python и R. Он предоставляет все необходимое для решения задач по анализу и обработке данных (с применимостью к Python).

Anaconda — это набор бинарных систем, включающий в себя Scipy, Numpy, Pandas и их зависимости.

  • Scipy — это пакет статистического анализа.
  • Numpy — это пакет числовых вычислений.
  • Pandas — уровень абстракции данных для объединения и преобразования данных.

Что такое Анаконда Навигатор?

Anaconda Navigator — это графический интерфейс пользователя на рабочем столе (GUI), включенный в дистрибутив Anaconda, который позволяет запускать приложения и легко управлять пакетами, средами и каналами conda без использования команд командной строки. Навигатор может искать пакеты в Anaconda Cloud или в локальном репозитории Anaconda. Он доступен для Windows, MacOS и Linux.

  • JupyterLab — это интерактивная среда разработки для работы с блокнотами, кодом и данными.
  • Jupyter Notebok — удобный инструмент для создания красивых аналитических отчетов, позволяет хранить вместе код, изображения, комментарии, формулы и графики. Работа ведется в браузере.
  • Spyder — интерактивной IDE для научных расчетов на языке Python. Данная IDE позволяет писать, редактировать и тестировать код. Spyder предлагает просмотр и редактирование переменных с помощью GUI, динамическую интроспекцию кода, нахождение ошибок на лету и многое другое. Также, по необходимости, можно интегрировать Anaconda с другими Python IDE, включая PyCharm и Atom.
  • VS Code — это оптимизированный редактор кода с поддержкой таких операций разработки, как отладка, запуск задач и контроль версий.
  • Glueviz — используется для визуализации многомерных данных в файлах. Он исследует отношения внутри и между связанными наборами данных.
  • Orange 3 — это основанная на компонентах структура интеллектуального анализа данных. Это может быть использовано для визуализации данных и анализа данных. Рабочие процессы в Orange 3 очень интерактивны и предоставляют большой набор инструментов.
  • RStudio — это набор интегрированных инструментов, предназначенных для повышения продуктивности работы с R. Он включает в себя основы R и Notebooks.

Зачем использовать Навигатор?

Для запуска многие научные пакеты зависят от конкретных версий других пакетов. Исследователи данных часто используют несколько версий множества пакетов и используют несколько сред для разделения этих разных версий.

Программа командной строки conda является одновременно менеджером пакетов и менеджером среды. Это помогает специалистам по данным гарантировать, что каждая версия каждого пакета имеет все необходимые зависимости и работает правильно.

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

Почему Вам могут потребоваться несколько сред Python?

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

Когда Вы постигните азы Python и загрузите приложения Python из GitHub, Kaggle или других источников. Этим приложениям могут потребоваться другие версии библиотек (пакетов) Python, чем те, которые Вы в настоящее время используете (прошлые версии пакетов или прошлые версии Python).

В этом случае Вам необходимо настроить различные среды.

Помимо этой ситуации, есть и другие варианты использования, когда могут оказаться полезными дополнительные среды:

  • У вас есть приложение (разработанное Вами или кем-то еще), которое когда-то работало прекрасно. Но теперь Вы пытались запустить его, и оно не работает. Возможно, один из пакетов больше не совместим с другими частями вашей программы (из-за так называемых критических изменений). Возможное решение состоит в том, чтобы настроить новую среду для вашего приложения, которая содержит версию Python и пакеты, полностью совместимые с вашим приложением.
  • Вы сотрудничаете с кем-то еще и хотите убедиться, что ваше приложение работает на компьютере члена вашей команды, или наоборот.
  • Вы доставляете приложение своему клиенту и снова хотите убедиться, что оно работает на компьютере вашего клиента.
  • Среда состоит из определенной версии Python и некоторых пакетов. Следовательно, если Вы хотите разрабатывать или использовать приложения с разными требованиями к Python или версиями пакетов, Вам необходимо настроить разные среды.

Каналы — это места хранилищ, где Conda ищет пакеты. Каналы существуют в иерархическом порядке. Канал с наивысшим приоритетом является первым, который проверяет Conda в поисках пакета, который вы просили. Вы можете изменить этот порядок, а также добавить к нему каналы (и установить их приоритет).

Рекомендуется добавлять канал в список каналов как элемент с самым низким приоритетом. Таким образом, вы можете включить «специальные» пакеты, которые не являются частью тех, которые установлены по умолчанию (каналы ~ Continuum). В результате вы получите все пакеты по умолчанию — без риска перезаписи их по каналу с более низким приоритетом — И тот «специальный», который вам нужен.

Создание новой среды в Anaconda Navigator

Для создания новой среды, нажимаем пункт Environments, а затем Create:

Далее указываем наименование среды и выбираем версию Python:

Добавление нового канала в Anaconda Навигаторе

Как начать работу в новой среде Conda?

Итак, Вы создали среду, указали дополнительные каналы, установили необходимые пакеты (библиотеки). Теперь необходимо в Анаконда Навигаторе перейти на вкладку Home и инсталлировать в определенную среду те компоненты, которые Вы хотите использовать.

Например, последовательно установим 2 компонента Jupyter Notepad и Spyder. Для компонентов также имеются каналы, откуда скачиваются для инсталляции ПО.

После инсталляции станут доступны кнопки Launch — Запустить компонент для работы в среде.

Запустим для примера Spyder:

Настройка среды для Spyder

1. Настройка интерпретатора

Настройка директории

Как открыть Jupyter Notebook в новой среде MyNewEnvironmentName

Для того, чтобы запустить Jupyter Notebook в созданной среде MyNewEnvironmentName, в пуске находим Anaconda3 и запускаем блокнот с названием среды:

Появится консольное окошко — это движок Jupyter Notebook, который работает в фоновом режиме:

В Jupyter запускаем Python 3:

Для того, чтобы убедиться в какой среде мы работаем, можно вбить ряд команд (ниже приведен текст этих команд для Python 3):

Узнать среду, в которой работает Jupyter Notebook:

import sys
print(sys.version)
print(sys.base_prefix)

Получить список модулей, доступных в Env:

print('\n'.join(sys.modules.keys()))

Anaconda3 Prompt cmd Conda Command — Запуск команд через консоль

Для того, чтобы использовать команды conda через командную строку (cmd), необходимо запустить программу Anaconda Prompt (Anaconda3)

Можете набрать две команды (в качестве проверки работы conda):

Установка новой библиотеки (пакета) в среду

Пакеты управляются отдельно для каждой среды. Изменения, которые вы вносите в пакеты, применяются только к активной среде.

Исполняемые файлы в среде Conda

  • python.exeисполняемый файл Python для приложений командной строки. Так, например, если вы находитесь в каталоге  Example App, вы можете выполнить его: python.exe exampleapp.py
  • pythonw.exeисполняемый файл Python для приложений с графическим интерфейсом или приложений без интерфейса пользователя
  • venvlauncher.exe
  • venvwlauncher.exe
  • \Scripts— исполняемые файлы, являющиеся частью установленных пакетов. После активации среды этот каталог добавляется в системный путь, поэтому исполняемые файлы становятся доступными без их полного пути.
  • \Scripts\activate.exe - активирует окружающую среду

Видео по Anaconda Youtube

Использование Anaconda с Doker

Anaconda со своей изолированной средой для пакетов Data Science Python и технологией контейнеров Docker создает отличную комбинацию для масштабируемых, воспроизводимых и переносимых развертываний данных.

Вы можете использовать Anaconda с Docker для создания контейнеров и обмена вашими приложениями для обработки данных внутри вашей команды. Совместные рабочие процессы по обработке данных с Anaconda и Docker максимально упрощают переход от разработки к развертыванию.

Jupyter Notebook: цифровая лабораторная тетрадь

Для обеспечения воспроизводимости исследований необходимо регистрировать все, что вы делаете. Это достаточно обременительно, особенно если вы просто хотите просто поэкспериментировать и выполнить специальный анализ.

Отличный инструмент для экспериментов — Jupyter Notebook. Интерактивный интерфейс программирования позволяет мгновенно проверять действия, выполняемые кодом, благодаря чему можно создавать алгоритмы шаг за шагом. Более того, вы можете использовать ячейки Markdown для записи своих идей и выводов одновременно с кодом.

Conda

Управление пакетами, зависимостями и средой для любого языка — Python, R, Ruby, Lua, Scala, Java, JavaScript, C / C ++, FORTRAN и других.

Conda — это система управления пакетами с открытым исходным кодом и система управления средой, работающая в Windows, macOS и Linux. Conda быстро устанавливает, запускает и обновляет пакеты и их зависимости. Conda легко создает, сохраняет, загружает и переключается между средами на вашем локальном компьютере. Он был создан для программ Python, но он может упаковывать и распространять программное обеспечение для любого языка.

Conda как менеджер пакетов поможет вам найти и установить пакеты. Если вам нужен пакет, для которого требуется другая версия Python, вам не нужно переключаться на другой менеджер среды, потому что conda также является менеджером среды. С помощью всего лишь нескольких команд вы можете настроить совершенно отдельную среду для запуска этой другой версии Python, продолжая при этом запускать вашу обычную версию Python в обычной среде.

В конфигурации по умолчанию conda может устанавливать и управлять тысячами пакетов на repo.anaconda.com, которые создаются, проверяются и поддерживаются Anaconda.

Conda может быть объединена с системами непрерывной интеграции, такими как Travis CI и AppVeyor, чтобы обеспечить частое автоматическое тестирование вашего кода.

Пакет conda и менеджер среды включены во все версии Anaconda и Miniconda.

Conda также включена в Anaconda Enterprise , которая обеспечивает управление корпоративными пакетами и средами для Python, R, Node.js, Java и других стеков приложений. Conda также доступна на conda-forge , канале сообщества. Вы также можете получить conda на PyPI , но этот подход может быть не таким современным.

Команды Conda

  • conda search package_name — поиск пакета через conda
  • conda install package_name — установка пакета через conda
  • conda install — установка всего стандартного набора пакетов — более 150, около 3 Гб
  • conda list — список установленных пакетов
  • conda update conda — обновление conda
  • conda clean -t — удаление кеша — архивов .tar.bz2, которые могут занимать много места и не нужны

Управление Conda и Anaconda

Убедитесь, что conda установлена, проверьте версию #

conda info

Обновление пакета conda и менеджера среды

conda update conda

Обновите метапакет анаконды (anaconda)

conda update anaconda

Управление средами — Managing Environments

Получить список всех моих окружений. Активная среда показана с *

conda info --envs
conda info -e

Создать среду и установить программу (ы)

conda create --name snowflakes biopython
conda create -n snowflakes biopython

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

conda activate snowflakes

Дезактивировать окружающую среду

conda deactivate

Создайте новую среду, укажите версию Python

conda create -n bunnies python=3.4 astroid

Сделать точную копию окружения

conda create -n flowers --clone snowflakes

Удалить среду

conda remove -n flowers --all

Сохранить текущую среду в файл

conda env export > puppies.yml

Загрузить среду из файла

conda env create -f puppies.yml

Управление Python

Проверьте версии Python, доступные для установки

conda search --full-name python
conda search -f python

Установите другую версию Python в новой среде

conda create -n snakes python=3.4

Управление конфигурацией .condarc

Получить все ключи и значения из моего файла .condarc

conda config --get

Получить значение ключевых каналов из файла .condarc

conda config --get channels

Добавьте новое значение в каналы, чтобы conda искала пакеты в этом месте

conda config --add channels pandas

Управление пакетами (Packages), включая Python

Просмотр списка пакетов и версий, установленных в активной среде

conda list

Найдите пакет, чтобы узнать, доступен ли он для установки conda.

conda search beautiful-soup

Установите новый пакет. ПРИМЕЧАНИЕ. Если вы не укажете имя среды, оно будет установлено в текущей активной среде.

conda install -n bunnies beautiful-soup

Обновить пакет в текущей среде

conda update beautiful-soup

Поиск пакета в определенном месте (канал pandas на Anaconda.org)

conda search --override-channels -c pandas bottleneck

Установить пакет из определенного канала

conda install -c pandas bottleneck

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

conda search --override-channels -c defaults beautiful-soup

Установить коммерческие пакеты Continuum

conda install iopro accelerate

Создайте пакет Conda из пакета Python Index Index (PyPi)

conda skeleton pypi pyinstrument
conda build pyinstrument

Удаление Пакетов (Packages) или Сред (Environments)

Удалить один пакет из любой именованной среды

conda remove --name bunnies beautiful-soup

Удалить один пакет из активной среды

conda remove beautiful-soup

Удалить несколько пакетов из любой среды

conda remove --name bunnies beautiful-soup astroid

Удалить среду

conda remove --name snakes --all

Источники, использованные при создании статьи

5 3 голоса
Рейтинг статьи
Шамаев Иван

от Шамаев Иван

Разработчик аналитических решений QlikView/Qlik Sense/Power BI; Python Data Scientist; Разработчик интеграционных решений на PHP, Python, JavaScript.

Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Kubeisinov
Kubeisinov
6 месяцев назад

отличная статья! Спасибо!

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x
Открыть диалог
Нужна помощь?