Управление пакетами с помощью Conda

Все чаще среди Python-разработчиков заходит речь о менеджере пакетов Conda. JetBrains включил этот инструмент в состав PyCharm. Давайте разберемся, чем Conda лучше pip и что представляет собой рабочий процесс с Conda.

Чем Conda лучше pip?

Основная проблема заключается в том, что pip, easy_install и virtualenv ориентированы на Python. Эти инструменты игнорируют библиотеки зависимостей, реализованные с использованием других языков. Например, XSLT, HDF5, MKL и другие, которые не имеют setup.py в исходном коде и не устанавливают файлы в директорию site-packages.

Conda же способна управлять пакетами как для Python, так и для C/ C++, R, Ruby, Lua, Scala и других. Conda устанавливает двоичные файлы, поэтому работу по компиляции пакета самостоятельно выполнять не требуется (по сравнению с pip).

Существуют также некоторые различия, если вы заинтересованы в создании собственных пакетов. Например, pip создан на основе setuptools, тогда как Conda использует свой собственный формат, который имеет некоторые преимущества (например, статическая компиляция пакета).

Виртуальное окружение с Conda

  1. Начиная проект, создайте чистую директорию и дайте ей понятное короткое имя:

    mkdir $PROJ_NAME
    cd $PROJ_NAME
    touch README.md main.py
    
  2. Создайте чистое conda-окружение с таким же именем, как директория проекта, и затем активируйте его:

    source deactivate
    conda create -n $PROJ_NAME python=3.5
    source activate $PROJ_NAME
    
  3. Установите пакеты, необходимые для реализации проекта.

    conda install django, pandas
    
  4. Периодически экспортируйте параметры окружения. Экспортируйте после установки, перед каждым большим или маленьким коммитом:

    conda env export > environment.yml
    
  5. Затем начните разработку. Как только понадобятся новые пакеты, вы можете выполнить conda install и conda env export. Когда пришло время прекратить разработку или переключиться на новый проект, отключите среду:

    source deactivate
    

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

    conda remove -n $PROJ_NAME
    
  6. Файл environment.yml позволит воссоздать окружение в любой нужный момент. Достаточно набрать:

    conda env create
    

Это краткое вступление, но достаточное для того, чтобы начать использовать Conda. С подробной информацией всегда можно ознакомиться в документации.