Разница между установкой conda и установкой pip.Сравнение функций и т. Д. [Python]
До сих пор установка 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 ради производительности!
обсуждение
Список комментариев
Пока нет комментариев