Подтвердить что ты не робот

Следует ли использовать conda или conda-forge для сред Python?

Conda и conda-forge являются менеджерами пакетов Python. Каков правильный выбор, когда пакет существует в обоих репозиториях? Например, Django может быть установлен с любым из них, но разница между ними заключается в нескольких зависимостях (у conda-forge гораздо больше). Там нет объяснения этих различий, даже простой README.

Какой из них следует использовать? Конда или Конда-кузница? Это имеет значение?

4b9b3361

Ответ 1

Короткий ответ: по моему опыту, в общем, не имеет значения, какой вы используете.

Длинный ответ:

Таким образом, conda-forge - это дополнительный канал, с которого можно устанавливать пакеты. В этом смысле он не более особенный, чем канал по умолчанию или любой другой из сотен (тысяч?) Каналов, на которые люди отправляли пакеты. Вы можете добавить свой собственный канал, если зарегистрируетесь на https://anaconda.org и загрузите свои собственные пакеты Conda.

Здесь мы должны провести различие, которое, как мне кажется, вам не совсем понятно из формулировки вопроса, между conda, кроссплатформенным менеджером пакетов, и conda-forge, каналом пакетов. Anaconda Inc. (ранее Continuum IO), основные разработчики программного обеспечения conda, также поддерживают отдельный канал пакетов, который используется по умолчанию при conda install packagename без изменения каких-либо параметров.

Есть два способа изменить параметры каналов. Один из них - указывать канал каждый раз, когда вы устанавливаете пакет:

conda install -c some-channel packagename

Конечно, пакет должен существовать на этом канале. Если вы часто используете один и тот же канал, возможно, вы захотите добавить его в свою конфигурацию. Ты можешь написать

conda config --add channels some-channel

добавить канал some-channel в начало списка конфигурации channels. Это дает some-channel наивысший приоритет (приоритет определяет (частично), какой канал выбран, когда более чем один канал имеет конкретный пакет). Чтобы добавить канал в конец списка и дать ему самый низкий приоритет, введите

conda config --append channels some-channel

Если вы хотите удалить добавленный канал, вы можете сделать это, написав

conda config --remove channels some-channel

Увидеть

conda config -h

для большего количества вариантов.

Учитывая все вышесказанное, существует четыре основных причины использовать канал conda-forge вместо канала по defaults поддерживаемого Anaconda:

  1. Пакеты на conda-forge могут быть более современными, чем пакеты на канале по defaults
  2. В канале conda-forge есть пакеты, которые недоступны по defaults
  3. Вы бы предпочли использовать такую зависимость, как openblas (из conda-forge) вместо mkl (из defaults).
  4. Если вы устанавливаете пакет, для которого требуется скомпилированная библиотека (например, расширение C или оболочка вокруг библиотеки C), это может снизить вероятность несовместимости, если вы устанавливаете все пакеты в среде из одного канала из-за двоичного кода. совместимость базовой библиотеки C (но этот совет может устареть/измениться в будущем).

Ответ 2

Есть некоторые библиотеки Python, которые вы не можете установить с помощью простой conda install поскольку их канал недоступен, пока вы не примените conda-forge. По моему опыту, pip является более общим для просмотра источников канала, чем conda. Например, если вы хотите установить python-constraint вы можете сделать это через pip install но установить его через ** cond **. Вы должны указать канал - conda-forge.

conda install -c conda-forge python-constraint // works

но нет

conda install python-constraint

Ответ 3

conda-forge - лучший выбор, поскольку он содержит больше пакетов.