Разница между установкой conda и установкой pip.Сравнение функций и т. Д. [Python]

2019 год 5 месяц 26 день

До сих пор установка pip распознавалась как замена только тогда, когда установка conda была недоступна.Если желаемого пакета не было в репозитории Anaconda, я устанавливал его с помощью pip, и в какой-то момент среда была повреждена из-за этих конфликтов.

Среда Anaconda была повреждена, когда я думал, что Jupyter Notebook не запускается

Поскольку это была отличная возможность, я исследовал разницу между pip и conda, поэтому оставлю это в качестве меморандума ниже.

Разница между conda и pip

Что такое Конда

Вкратце, это менеджер пакетов, который входит в стандартную комплектацию Anaconda / Miniconda и представляет собой систему управления окружающей средой.

Anaconda - это платформа, которая предоставляет пакеты для науки о данных (если вы собираетесь узнать разницу между conda и pip, вы уже знаете). Вы можете одновременно установить языки программирования для науки о данных, такие как Python и R, и пакеты, необходимые для статистического анализа и машинного обучения, и сразу же создать среду, использующую Python.
Еще есть Miniconda в минимальной комплектации.

conda работает только при установке установщиком Anaconda или установщиком miniconda. Даже если вы установите conda в среде python + pip, вы не сможете использовать его, как в дистрибутиве Anaconda.

Что такое пип

Стандартный установщик пакетов python и система управления пакетами, поставляемая с установкой чистого python.

Он загружает и устанавливает пакеты из индекса пакетов Python (PyPI), репозитория языков программирования Python.

Различия в каждой функции

Роли conda и pip сведены в простую таблицу.

функцияCondaтипун
Установка и управление пакетами
Смена версии PythonНевозможно (заменить на pipenv, pyenv)
Управление виртуальной средойНевозможно (заменить на pipenv, virtualenv, venv)

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

С помощью pip вы будете устанавливать и использовать такие пакеты, как pyenv (контроль версий) и venv (управление виртуальной средой).

Недавно вышел pipenv, и кажется, что у него есть функция, которая может почти заменить conda.

установка conda и установка pip

Команды для conda install и pip install похожи, но механизм установки пакетов кажется совершенно другим. На сайте anaconda.com есть простая для понимания сравнительная таблица, поэтому я процитирую ее (японский и измененный, чтобы мне было легче понять).

установка condaпип установить
Формат упаковкидвоичныйколесо или источник
компилировать不要必要
Тип упаковкиВозможны и другие языкитолько питон
Управление виртуальной средой, управление версиямиэто возможноНевозможно (заменить virtualenv, venv)
Проверка зависимостидани один
Источник загрузки пакетарепозиторий анаконды, облако анакондыПиПл

・ Conda поддерживает языки, отличные от python

Anaconda / Miniconda - это кроссплатформенная платформа, позволяющая устанавливать несколько языков программирования, таких как Python, R, Ruby, Java, JavaScript, C / C ++, FORTRAN и их пакеты.

conda может устанавливать программные пакеты, написанные на разных языках, на своей кроссплатформенной платформе.

pip можно установить только в пакеты Python.

-Требуется ли компиляция

Более 1000 пакетов, которые можно установить с помощью команды conda, хранятся в специальном репозитории под названием Anaconda Cloud.

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

Файлы, которые вы устанавливаете с помощью pip, содержат исходные файлы, которые вам нужно будет скомпилировать на стороне клиента.

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

・ Есть ли проверка зависимости

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

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

・ Разница в скорости выполнения

Также была информация, что операции с матрицами с numpy, установленным с conda, выполняются быстрее.Это зависит от типа расчета, но кажется, что разница более чем вдвое.

Существуют различные методы реализации BLAS (подпрограммы базовой линейной алгебры), которые фактически обрабатывают матричные операции, вызываемые NumPy, и один из них - Intel MKL (Math Kernel Library), разработанный Intel.).Фактически, BLAS, вызываемый из NumPy, установленного Anaconda, - это MKL, но когда NumPy установлен с помощью pip, обычно используется BLAS, называемый OpenBLAS, поэтому есть вероятность, что здесь будет разница в производительности.

Разница в скорости NumPy между NumPy Anaconda и pip-Orizuru

BLAS - это библиотека, которая выполняет основные матричные и векторные вычисления. В библиотеке numpy есть еще живые муравьи, и я не уверен ...

«Насколько реально изменяется скорость обработки вычислений в зависимости от разницы в BLAS» и «Как узнать, какой BLAS используется в вашей среде» подробно описаны на следующих страницах.Пожалуйста, обратитесь, если хотите.

Кажется, что скорость вычислений меняется в зависимости от BLAS, используемого для Numpy [Python]

В этом разница между conda и pip.

ссылка


Понимание Conda и Pip
https://conda.io/en/latest/
Сравните скорости NumPy от Anaconda и NumPy от PyPI
Прекратите устанавливать Tensorflow с помощью pip ради производительности!