11

В чем разница между pip и conda?

13

Я знаю, что pip — это менеджер пакетов для Python. Однако на сайте IPython я увидел, что для установки IPython используется conda.

Могу ли я использовать pip для установки IPython? Почему стоит использовать conda в качестве другого менеджера пакетов для Python, если у меня уже есть pip?

В чем разница между pip и conda?

5 ответ(ов)

0

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

conda install -n testenv pip
source activate testenv
pip <команда pip>

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

0

Для пользователей WINDOWS

Ситуация с "стандартными" инструментами упаковки в последнее время улучшается:

  • На PyPI на 11 сентября 2015 года уже 48% пакетов представлены в формате wheel (по сравнению с 38% в мае 2015 и 24% в сентябре 2014 года).
  • Формат wheel теперь поддерживается "из коробки" в последней версии Python 2.7.9.

Ситуация с "стандартными" плюс "настроенными" инструментами упаковки также улучшилась:

  • Вы можете найти почти все научные пакеты в формате wheel на сайте http://www.lfd.uci.edu/~gohlke/pythonlibs.
  • Проект mingwpy может в будущем предложить пакет для "компиляции" для пользователей Windows, позволяя устанавливать всё из исходников при необходимости.

Упаковка "Conda" по-прежнему лучше подходит для рынка, который она обслуживает, и подчеркивает области, где "стандарт" должен улучшиться.

(Кроме того, множественные усилия по спецификации зависимостей как в стандартной системе wheel, так и в системе conda или buildout не являются очень питоничными. Было бы здорово, если бы все эти "основные" техники упаковки могли конвергировать, например, через какой-то PEP).

0

Чтобы ответить на исходный вопрос,

для установки пакетов PIP и Conda — это разные способы достижения одной и той же цели. Оба инструмента являются стандартными приложениями для установки пакетов. Основное различие заключается в источнике файлов пакетов.

  • PIP/PyPI обычно предлагает больше «экспериментальных» пакетов или более новых, редко используемых версий пакетов.
  • Conda в основном содержит более устоявшиеся пакеты или версии.

Важно отметить предостережение: если вы используете оба источника (pip и conda) для установки пакетов в одной среде, это может вызвать проблемы в будущем.

  • Воссоздать окружение будет сложнее.
  • Исправление несовместимостей пакетов становится более сложным.

Лучшей практикой является выбор одного приложения — PIP или Conda — для установки пакетов и использование этого инструмента для установки всех необходимых пакетов. Тем не менее, существуют множество исключений или причин, по которым вы все равно можете использовать pip в среде conda и наоборот. Например:

  • Когда есть пакеты, которые вам нужны, а они доступны только в одном из них.
  • Вам нужна определенная версия, которая доступна лишь в одной среде.
0

pip предназначен только для Python.

conda, в свою очередь, в основном используется с Anaconda и другими научными пакетами, такими как зависимости для R и т.д. Не всем пользователям необходима Anaconda, которая уже включает Python. Anaconda обычно применяется теми, кто занимается машинным обучением, глубоким обучением и т.д. Обычному разработчику на Python не нужно запускать Anaconda на своем ноутбуке.

0

Я, возможно, нашел еще одну незначительную разницу. У меня окружения Python находятся в /usr, а не в /home или другом месте. Чтобы установить что-то в это окружение, мне пришлось использовать команду sudo install pip. Для меня нежелательным побочным эффектом использования sudo install pip было то, что после этого мне приходилось запускать python с sudo, чтобы импортировать любые пакеты, которые я установил с помощью sudo. Я оставил эту затею и в конечном итоге обнаружил, что могу использовать sudo conda для установки пакетов в окружение в /usr, и эти пакеты импортировались нормально без необходимости предоставления прав sudo для python. Я даже использовал sudo conda для исправления сломанного pip, вместо того чтобы использовать sudo pip uninstall pip или sudo pip --upgrade install pip.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь