Содержание страницы
Среды 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
Источники, использованные при создании статьи
- https://protostar.space/why-you-need-python-environments-and-how-to-manage-them-with-conda
- https://kapeli.com/cheat_sheets/Conda.docset/Contents/Resources/Documents/index
6 Comments