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

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

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

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


person lazywei    schedule 08.01.2014    source источник
comment
Внимательно прочитав страницу установки, вы увидите полная инструкция по установке с помощью pip, и что _1 _ / _ 2_ нацелено на new users who want to get up and running with minimal effort: canopy / anaconda - это отдельная среда, которая не мешает с системным питоном (например, Venv, но более мощным). Кстати, IPyhton, а не iPython (верхний регистр I)   -  person Matt    schedule 08.01.2014
comment
Одно отличие состоит в том, что с помощью pip можно установить гораздо больше вещей, чем с помощью conda: pip может установить что угодно из pypi с помощью одной команды. conda требует трех команд: скелет, сборка, установка и, возможно, другие, если это не сработает. pip может установить что угодно из github или исходного кода одной командой. conda требует написания рецепта, что непросто, тем более что документация всегда кажется неправильной / устаревшей.   -  person endolith    schedule 22.02.2016
comment
Связанный вопрос: каковы ПРЕИМУЩЕСТВА pip над conda? Я вижу много пропаганды Anaconda ниже, но ничего о pip. Почему пип до сих пор остается стандартом, если анаконда так хороша?   -  person Brian Postow    schedule 17.03.2016
comment
Я считаю эту цитату поучительной: Pip - менеджер пакетов, а Virtualenv - менеджер среды. Конда подходит и для того, и для другого. (ссылка)   -  person Atcold    schedule 20.01.2017
comment
Наблюдение: раньше я думал, что conda подразумевает загрузку огромного количества пакетов, но это уже не так: вы можете установить miniconda, который, по сути, является просто менеджером пакетов, conda.io/docs/install/quick.html   -  person Hugh Perkins    schedule 29.06.2017
comment
Примечание. Комментарий @endolith больше не точен, все не так уж и ужасно;)   -  person AMC    schedule 09.01.2020
comment
@AMC conda теперь может легко устанавливать вещи из pypi?   -  person endolith    schedule 09.01.2020
comment
@endolith conda теперь может устанавливаться из многих репозиториев, репозиториев pypi, conda-forge, npm, github и многих других.   -  person Rich Lysakowski PhD    schedule 11.09.2020
comment
@RichLysakowskiPhD Как установить из pypi?   -  person endolith    schedule 11.09.2020


Ответы (13)


Цитата из Блог Conda:

Поскольку мы так долго были вовлечены в мир Python, мы все знаем о pip, easy_install и virtualenv, но эти инструменты не отвечали всем нашим конкретным требованиям. Основная проблема заключается в том, что они сосредоточены на Python, игнорируя зависимости библиотек, отличных от Python, такие как HDF5, MKL, LLVM и т. Д., Которые не имеют setup.py в исходном коде, а также не устанавливают файлы на сайт Python. -packages каталог.

Итак, Conda - это инструмент упаковки и установщик, цель которого - больше, чем то, что делает pip; обрабатывать зависимости библиотек вне пакетов Python, а также самих пакетов Python. Conda также создает виртуальную среду, как это делает virtualenv.

Таким образом, Conda следует сравнить с Buildout, возможно, еще одним инструментом, который позволяет обрабатывать как Python, так и задачи установки, отличные от Python.

Поскольку Conda вводит новый формат упаковки, вы не можете использовать pip и Conda взаимозаменяемо; pip не удается установить формат пакета Conda. Вы можете использовать эти два инструмента одновременно (установив pip с conda install pip), но они также не взаимодействуют друг с другом.

С момента написания этого ответа Anaconda опубликовала новую страницу на Understanding Conda и Pip < / em>, что тоже перекликается с этим:

Это подчеркивает ключевое различие между conda и pip. Pip устанавливает пакеты Python, тогда как conda устанавливает пакеты, которые могут содержать программное обеспечение, написанное на любом языке. Например, перед использованием pip интерпретатор Python должен быть установлен через системный менеджер пакетов или путем загрузки и запуска установщика. Conda, с другой стороны, может напрямую устанавливать пакеты Python, а также интерпретатор Python.

и далее

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

person Martijn Pieters    schedule 08.01.2014
comment
Спасибо за ваше объяснение. Однако я все еще не понимаю, может ли Conda заменить pip? т.е. может ли Conda делать все, что может сделать пип? - person lazywei; 08.01.2014
comment
@lazywei: не думаю, что может; не похоже, что Conda поддерживает, например, формат колесного архива. У них разные цели. - person Martijn Pieters; 08.01.2014
comment
Спасибо. Итак, я должен следовать инструкциям по установке пакета, чтобы решить, какой инструмент мне следует использовать, верно? - person lazywei; 08.01.2014
comment
Кроме того, действительно легко установить любой пакет python (который использует setuptools) из исходного кода в conda. Просто создайте рецепт и conda build, и он создаст повторно -используемый пакет, которым вы можете поделиться с другими через binstar или аналогичный. - person naught101; 25.08.2015
comment
@ naught101 Просто создайте рецепт. Это не так просто, как набрать pip install. - person endolith; 21.02.2016
comment
Могут ли некоторые объяснить мне, что произойдет, если вы использовали pip и conda для установки одного и того же пакета, за исключением другой версии, которую python будет использовать при их импорте? - person Lance Ruo Zhang; 19.01.2017
comment
Все, что создано conda, кричит вам, чтобы вы не использовали pip, потому что вы все сломаете. Я бы придерживался одного или другого. - person BallpointBen; 01.05.2018
comment
Было кое-что, что меня интересовало, касательно conda и ее объема работы, учитывая менеджеры пакетов уровня дистрибутива / ОС. Если conda не зависит от языка, зачем использовать conda вместо pacman? Просто чтобы отделить вашу среду Python от обновлений дистрибутива? Я нахожу это странным, потому что в наборах компиляторов C / C ++ и библиотеках управляют через менеджеры пакетов, почему Python отличается? Почему дистрибутиву доверяют управление библиотеками C / C ++, но не библиотеками Python? - person jrh; 12.11.2018
comment
@jrh: вы не можете установить несколько версий одного и того же пакета бок о бок при использовании диспетчера пакетов ОС, а не в качестве основной функции. Conda управляет средами, каждая со своим набором установленных пакетов определенных версий. Таким образом, проект A, разработанный некоторое время назад, все еще может цепляться за старую версию библиотеки Foo (нет ресурсов для обновления проекта для работы с более новой версией), в то время как для проекта B требуется новейшая версия той же библиотеки. - person Martijn Pieters; 12.11.2018
comment
@jrh: и да, вы можете сделать то же самое, скомпилировав библиотеку из источника, локально или разместив общие объекты для определенных версий в определенных местах и ​​некоторую конфигурацию для каждого проекта, чтобы отделить их, но когда вам нужно сделать это на для разных операционных систем и для множества разных проектов, когда что-то вроде Conda управляет этим для с готовыми предварительно скомпилированными пакетами, становится действительно привлекательным. Особенно, когда разработчики действительно специалисты по данным, а не инженеры-программисты. - person Martijn Pieters; 12.11.2018
comment
Хороший момент, менеджеры пакетов дистрибутива (обычно) не позволяют устанавливать несколько версий одновременно. Я предполагаю, что это разница в дизайне между диспетчером пакетов Python и диспетчером пакетов Linux, первый допускает дублирование версий библиотеки за счет увеличения использования диска, а второй предполагает, что версия библиотеки дистрибутива просто работает для всего программного обеспечения, которое имеет зависимость против libX? - person jrh; 12.11.2018
comment
(Если я на данном этапе слишком далеко отклонился от правильного пути, приношу свои извинения), часть аргументов IIRC, лежащая в основе типичной настройки управления пакетами дистрибутива (то есть, поддержка спецификаций ограниченной версии для зависимостей), заключалась в том, чтобы сделать так, чтобы обновления безопасности могли быть легко выкатывается; если программное приложение определяет среду, содержащую что-то вроде .... ‹библиотеки ssl› версии X, а затем обнаруживается серьезная уязвимость, не означает ли это, что большинство пользователей будут застрять в этой старой версии этой библиотеки на неопределенный срок? - person jrh; 12.11.2018
comment
@jrh: conda стремится предоставить вам среду разработки, а не полную ОС. Вы сами несете ответственность за решение вопросов безопасности. То же самое верно при использовании pip или при ручном управлении версиями. - person Martijn Pieters; 12.11.2018
comment
@MartijnPieters Означает ли это, что я установил keras, используя conda для запуска моего кода Python на Ipython Nb, тогда мне нужно установить keras, используя pip, чтобы он запускался в простом файле .py, запущенном в терминале. - person ajaysinghnegi; 31.12.2018
comment
@AjaySinghNegi: IPython - это среда, созданная на Python и работающая с интерпретатором Python. Если вы установили IPython для работы с вашим питоном Conda, то нет, вам не нужно использовать pip, если вы уже использовали conda для установки Keras. - person Martijn Pieters; 31.12.2018
comment
Таким образом, это означает, что установка библиотеки python в anaconda просто означает, что я могу запустить .py файл в терминале без повторного использования pip install library для его запуска на моем терминале. Верно? - person ajaysinghnegi; 31.12.2018
comment
@AjaySinghNegi: при условии, что вы затем используете исполняемый файл Python, который является частью установки Anaconda. - person Martijn Pieters; 31.12.2018
comment
@MartijnPieters И как мне это обеспечить? - person ajaysinghnegi; 03.01.2019
comment
Conda 4.6 представила экспериментальное взаимодействие с пакетами python, не установленными conda. Дополнительные сведения см. На странице stackoverflow.com/a/54623633/2127762. Pip всегда распознавал пакеты Python, установленные conda, потому что пакеты conda включают соответствующие метаданные (каталог .egg-info или .dist-info и т. Д.). Сказать, что нельзя использовать pip и conda как взаимозаменяемые, вероятно, преувеличено. Лучше всего сначала создать среду python с помощью conda (которая по умолчанию включает pip), а затем использовать pip в качестве второго шага. Вы все еще можете работать со средой с помощью conda после того, как pip изменил ее. - person kalefranz; 11.02.2019
comment
@kalefranz: вы не можете просто заменить conda на pip, поэтому они по-прежнему не могут использоваться взаимозаменяемо. Никакого преувеличения. - person Martijn Pieters; 11.02.2019
comment
Почему Ananconda просто не расширила pip? - person Phil; 03.03.2019
comment
@Phil: как бы вы вообще это сделали, когда Anaconda управляет программным обеспечением на уровне выше двоичного файла Python, который потребуется для запуска pip? Conda управляет двоичными файлами Python, а также может управлять средами без установленного Python, то есть без pip. - person Martijn Pieters; 03.03.2019
comment
@MartijnPieters Хорошая мысль, и в этом есть смысл. Я думал о них в том, что видят потребители (установленные пакеты), а не в том, как они работают внутри компании. - person Phil; 03.03.2019
comment
Как это сравнить с точки зрения безопасности? Это то же самое, что и пип? а точнее безопаснее как например apt-get? - person Mehdi; 12.04.2019
comment
@Mehdi: определите «безопасность». - person Martijn Pieters; 12.04.2019
comment
@MartijnPieters, спасибо, что нашли время ответить на все вышеперечисленные вопросы по этой теме. У меня вопрос: если вы использовали pip и conda для установки одного и того же пакета, за исключением другой версии, что будет использовать python, когда вы импортируете их в свой файл сценария python? Будет ли это зависеть от того, где вы запускаете файл python? Т.е. если он находится в командной строке по умолчанию (я пользователь Windows) и вы запускаете python <python file name>, тогда он ищет модули / пакеты, установленные PIP в C:\Python\Python37-32\Lib\site-packages (в основном, каталог прямой установки python по умолчанию) ... - person Hazzaldo; 11.05.2019
comment
... тогда как если вы запустите файл python из подсказки Anaconda (та же команда: python <python file name>), тогда он будет искать модули / пакеты, установленные conda в C:\Program Files\Anaconda3\Lib\site-packages. Это верно? - person Hazzaldo; 11.05.2019
comment
@Hazzaldo: извините, на данный момент у меня не установлена ​​Anaconda. - person Martijn Pieters; 11.05.2019
comment
Я чувствую, что часть содержания в этом разделе комментариев могла бы стать хорошим FAQ где-нибудь, может быть, в вики-теге? Вики [conda] выглядит немного пустой - person jrh; 10.07.2019

Вот краткое изложение:

пип

  • Только пакеты Python.
  • Компилирует все из исходников. РЕДАКТИРОВАТЬ: теперь pip устанавливает двоичные колеса, если они доступны.
  • С одобрения основного сообщества Python (т.е. Python 3.4+ включает код, который автоматически загружает pip).

Conda

  • Агностик Python. Основное внимание в существующих пакетах уделяется Python, да и сама Conda написана на Python, но вы также можете иметь пакеты Conda для библиотек C, пакетов R или чего угодно.
  • Устанавливает двоичные файлы. Есть инструмент под названием conda build, который собирает пакеты из исходного кода, но сам conda install устанавливает вещи из уже собранных пакетов Conda.
  • Внешний. Conda - это менеджер пакетов Anaconda, дистрибутива Python, предоставляемого Continuum Analytics, но его можно использовать и за пределами Anaconda. Вы можете использовать его с существующей установкой Python, установив его с помощью pip (хотя это не рекомендуется, если у вас нет веской причины использовать существующую установку).

В обоих случаях:

  • Написано на Python
  • Открытый исходный код (Conda - это BSD, а pip - это MIT)

Первые два пункта списка Conda действительно делают его преимуществом перед pip для многих пакетов. Поскольку pip устанавливается из исходного кода, установка с ним чего-либо может быть болезненной, если вы не можете скомпилировать исходный код (это особенно верно в Windows, но это может быть даже верно в Linux, если в пакетах есть сложная библиотека C или FORTRAN. зависимости). Conda устанавливается из двоичного файла, что означает, что кто-то (например, Continuum) уже выполнил тяжелую работу по компиляции пакета, и поэтому установка проста.

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

person asmeurer    schedule 08.01.2014
comment
pip больше не строит все из исходников. Если колесо доступно, pip install --use-wheel <package> установит собранный пакет. См. Здесь: wheel.readthedocs.org/en/latest. Однако мой личный опыт работы с колесом показывает, что доступно так мало научных пакетов колес, что это чисто академический характер. И, конечно, pip install в большинстве случаев не работает и в Windows, если ваша среда сборки настроена неправильно. Итак, на данный момент conda ftw. - person Caleb Hattingh; 09.01.2014
comment
Колеса все еще новые и не используются по умолчанию, поэтому неудивительно, что их пока не так много. Wheel по-прежнему относится к категории специфичных для Python, а это означает, что он может плохо подходить для пакетов, отличных от Python, или пакетов Python, которые зависят от пакетов, отличных от Python. - person asmeurer; 12.01.2014
comment
Чтобы получить представление о том, для чего вы можете использовать conda, ознакомьтесь с github.com/conda/conda -Рецепты. Кроме того, этот ответ не учитывает тот факт, что conda также является менеджером среды, тогда как с pip вам нужно вернуться к чему-то ужасному, например virtualenv. - person naught101; 25.08.2015
comment
Мне пришлось проголосовать против этого: второй пункт - это просто историческая заметка, но вы вернетесь к нему и позже. Основное отличие в наши дни заключается в том, что pip - это менеджер пакетов, а conda - скорее менеджер среды. - person Shep; 22.12.2016
comment
@ Шеп, ты имеешь в виду компилирующую штуку? Пип по-прежнему компилируется из исходников. Conda никогда не компилируется из исходного кода. Часть основной философии conda заключается в том, что она оставляет потенциально сложный этап компиляции на усмотрение сопровождающего пакета. И это абсолютно НЕ правда, что conda не является менеджером пакетов. Я полагаю, вы также не думаете, что apt или brew являются менеджерами пакетов. Следует думать о conda как о подобном диспетчере пакетов (он может устанавливать любые пакеты, а не только Python), за исключением тех, которые не требуют root, работают на любой ОС и имеют поддержку среды. - person asmeurer; 22.12.2016
comment
Это правда, что pip может компилироваться из исходного кода, но это становится все реже и реже по мере того, как все больше пакетов перемещается: в наши дни я могу установить большую часть того, что мне нужно, за несколько секунд с помощью pip. Так что это не значит, что этот ответ неверен, он просто немного устарел, поскольку за последние несколько лет pip значительно улучшился. - person Shep; 24.12.2016
comment
Я также согласен с тем, что в conda есть компонент управления пакетами, но он намного больше, чем управление средой. Conda отлично подходит, если вы хотите использовать его как инструмент для управления всем своим рабочим процессом, но если вы хотите, чтобы что-то легкое для интеграции с существующим проектом, это немного излишне. - person Shep; 24.12.2016
comment
Никогда не было правдой, что pip может быть установлен только из исходного кода. До колес у нас были яйца в качестве двоичного формата установки по умолчанию и рекомендуемый формат распространения для установок Windows, и pip будет (и будет) устанавливать яйца, если это лучший доступный вариант. - person Martijn Pieters; 03.03.2019
comment
Для разработчиков Windows этот ответ все еще актуален на июль 2020 года. Я попытался установить Theano с помощью pip, и после столкновения с командами cmake и make, которые моя система Windows 10 не смогла найти, мне пришлось вернуться к Conda, которая сделала все за меня. ИМХО, ключевой вывод из asmeurer заключается в следующем: Часть основной философии conda заключается в том, что он оставляет потенциально сложный этап компиляции для сопровождающего пакета - person Franco; 12.08.2020

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

pip - это менеджер пакетов, который упрощает установку, обновление и удаление пакетов python. Он также работает с виртуальными средами python.

conda - это менеджер пакетов для любого программного обеспечения (установка, обновление и удаление). Он также работает с виртуальными системными средами.

Одна из целей дизайна conda - облегчить управление пакетами для всего программного стека, необходимого пользователям, из которых одна или несколько версий Python могут быть лишь небольшой частью. Сюда входят низкоуровневые библиотеки, такие как линейная алгебра, компиляторы, такие как mingw в Windows, редакторы, инструменты управления версиями, такие как Hg и Git, или все, что требует распространения и управления.

Для управления версиями pip позволяет переключаться между несколькими средами python и управлять ими.

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

Conda не ориентирована на Windows, но в Windows это лучшее решение, доступное в настоящее время, когда требуется установка и управление сложными научными пакетами, требующими компиляции.

Я хочу плакать, когда думаю о том, сколько времени я потерял, пытаясь скомпилировать многие из этих пакетов через pip в Windows, или отладить неудачные pip install сеансы, когда требовалась компиляция.

Наконец, Continuum Analytics также размещает (бесплатно) binstar.org (теперь называется anaconda.org), чтобы позволить обычным разработчикам пакетов создавать свои собственные (встроенные!) программные стеки, из которых их пользователи пакетов смогут conda install.

person Caleb Hattingh    schedule 09.01.2014
comment
Согласно вашему заключительному пункту, сторонний проект conda-forge быстро стал стандартный подход к публикации пакетов Anaconda. Недавно мы опубликовали несколько пакетов, размещенных на conda-forge, для наш симулятор мультифизической биологии - и не могу рекомендовать этот процесс в достаточной степени. Для отправки новых рецептов в conda-forge есть компонент партнерской проверки на основе PR на GitHub, но преимущества с точки зрения автоматизации conda-forge значительно перевешивают первоначальные вложения. Бам! - person Cecil Curry; 07.06.2018
comment
@CecilCurry Я импортировал Keras в свой код, установил анаконду на свой Mac, а Keras conda установлен и pip установлен. Итак, при запуске моего кода в терминале, как мне узнать, какой keras импортируется (pip или conda)? - person ajaysinghnegi; 31.12.2018

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

conda install -n testenv pip
source activate testenv
pip <pip command>

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

person vijay venkatesh    schedule 13.05.2015
comment
Я думал, это не рекомендуется? - person endolith; 21.02.2016
comment
Настоятельно рекомендуется использовать pip внутри conda. Лучше установить с помощью conda, но для любых пакетов, у которых нет сборки conda, вполне приемлемо использовать pip. - person Bradley Kreider; 26.05.2016
comment
nit: кажется, фраза будет fully supported? fully recommended подразумевает, что лучше использовать pip, чем conda, в среде conda, на мой взгляд, и я не уверен, что это то, что вы / они имеете в виду? - person Hugh Perkins; 29.06.2017

Цитата из статьи Conda for Data Science на веб-сайте Continuum. :

Конда против пипса

Программисты Python, вероятно, знакомы с pip для загрузки пакетов из PyPI и управления их требованиями. Хотя conda и pip являются менеджерами пакетов, они очень разные:

  • Pip специфичен для пакетов Python, а conda не зависит от языка, что означает, что мы можем использовать conda для управления пакетами на любом языке. Pip компилирует из исходного кода, а conda устанавливает двоичные файлы, снимая бремя компиляции.
  • Conda создает среды, не зависящие от языка, в то время как pip полагается на virtualenv для управления только средами Python. Хотя рекомендуется всегда использовать пакеты conda, conda также включает в себя pip, поэтому вам не нужно выбирать между ними. Например, чтобы установить пакет python, у которого нет пакета conda, но который доступен через pip, просто запустите, например:
conda install pip
pip install gensim
person CheTesta    schedule 19.01.2017

Цитата из Conda: Myths and Misconceptions ( исчерпывающее описание):

...

Миф №3: Conda и pip - прямые конкуренты

Реальность: Conda и pip служат разным целям и напрямую конкурируют только в небольшом подмножестве задач, а именно в установке пакетов Python в изолированных средах.

Pip, что означает P ip I nstalls P ackages, является официально санкционированным менеджером пакетов Python и чаще всего используется для установки опубликованных пакетов. в индексе пакетов Python (PyPI). И pip, и PyPI регулируются и поддерживаются центром упаковки Python (PyPA).

Короче говоря, pip - это универсальный менеджер пакетов Python; conda - это кроссплатформенный менеджер среды, не зависящий от языка. Для пользователя наиболее заметным отличием, вероятно, является следующее: pip устанавливает пакеты python в любой среде; conda устанавливает любой пакет в среде conda. Если все, что вы делаете, - это установка пакетов Python в изолированной среде, conda и pip + virtualenv в основном взаимозаменяемы, с учетом некоторой разницы в обработке зависимостей и доступности пакетов. Под изолированной средой я подразумеваю conda-env или virtualenv, в которых вы можете устанавливать пакеты, не изменяя установку Python в вашей системе.

Даже если отбросить миф № 2, если мы сосредоточимся только на установке пакетов Python, conda и pip будут служить разным аудиториям и различным целям. Если вы хотите, скажем, управлять пакетами Python в существующей системной установке Python, conda не может вам помочь: по замыслу, она может устанавливать пакеты только в средах conda. Если вы хотите, скажем, работать со многими пакетами Python, которые зависят от внешних зависимостей (распространенными примерами являются NumPy, SciPy и Matplotlib), при значительном отслеживании этих зависимостей pip не может вам помочь: по замыслу, он управляет пакетами Python и только пакетами Python.

Conda и pip не являются конкурентами, это скорее инструменты, ориентированные на разные группы пользователей и модели использования.

person sancho.s ReinstateMonicaCellio    schedule 24.04.2017
comment
Я не уверен, что это правда, за пределами перспективы позиционирования на рынке. Например, посмотрите на pytorch, который предлагает три типа установки: conda, pip, source, pytorch.org и рекомендует: conda - person Hugh Perkins; 29.06.2017
comment
Установка пакетов Python в изолированной среде - это своего рода главное, для чего большинство разработчиков Python используют pip. - person Nick; 20.09.2017
comment
@Nick, разве не тогда, когда разработчик уже находится в «этой» виртуальной среде? Я думаю, что pip работает в виртуальной среде и устанавливает пакет, как будто он устанавливается для системы, но, как сказал sanchos.s, он устанавливает только пакеты python и не заботится о базовых библиотеках. кто-нибудь, пожалуйста, поправьте меня, если я ошибаюсь. - person Chan Kim; 20.01.2018

pip - это менеджер пакетов.

conda одновременно является менеджером пакетов и менеджером среды.

Деталь:

введите описание изображения здесь

использованная литература

person Simba    schedule 28.09.2019
comment
Интересно, что именно это за проверка зависимостей, pip проверяет совместимость зависимостей. ERROR: package-a 0.5.9 has requirement package-b~=0.2.0, but you'll have package-b 1.0.1 which is incompatible. (намного быстрее, чем conda). - person Pierre.Sassoulas; 23.07.2020

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

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

  • на самом pypi сейчас 48% пакетов колес по состоянию на сентябрь. 11 числа 2015 г. (рост с 38% в мае 2015 г., 24% в сентябре 2014 г.),

  • формат колеса теперь поддерживается из коробки для последней версии Python 2.7.9,

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

  • вы можете найти почти все научные пакеты в формате wheel по адресу http://www.lfd.uci.edu/~gohlke/pythonlibs,

  • проект mingwpy может однажды предоставить пользователям Windows пакет «компиляции», позволяющий при необходимости установить все из исходников.

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

(кроме того, спецификация зависимостей с несколькими усилиями в стандартной системе колес и в системе conda или buildout не очень питонична, было бы неплохо, если бы все эти `` основные '' методы упаковки могли бы сходиться через своего рода PEP)

person stonebig    schedule 14.05.2015

Чтобы ответить на исходный вопрос,
Для установки пакетов PIP и Conda - это разные способы сделать одно и то же. Оба являются стандартными приложениями для установки пакетов. Основное отличие - это источник файлов пакета.

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

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

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

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

  • Когда есть нужные вам пакеты, которые существуют только в одном, а в другом их нет.
  • Вам нужна определенная версия, которая доступна только в одной среде
person Donald S    schedule 08.06.2020

Могу ли я использовать pip для установки iPython?

Конечно, оба (первый подход на странице)

pip install ipython

и (третий подход, второй conda)

Вы можете вручную загрузить IPython с GitHub или PyPI. Чтобы установить одну из этих версий, распакуйте ее и запустите следующую команду из исходного каталога верхнего уровня с помощью Терминала:

pip install .

являются официально рекомендованными способами установки.

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

Как сказано здесь:

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

Conda превосходит pip в (YMMV)

  • проекты, использующие инструменты, отличные от Python
  • делиться с коллегами
  • переключение между версиями
  • переключение между проектами с разными версиями библиотек

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

На это широко отвечают все остальные.

person serv-inc    schedule 25.07.2017

С 2021 года conda время разрешения зависимости становится неприемлемым. Я перехожу на mamba для управления conda средами.

Если вы используете conda, обязательно попробуйте mamba.

person Zhangyi Hu    schedule 26.07.2021

pip только для Python

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

person Galapagos    schedule 03.05.2018
comment
простое объяснение, но меня научили зайти прямо на сайт Anaconda и загрузить дистрибутив Python 2.x или 3.x. Почему? ›Потому что он содержит все пакеты, которые понадобятся студенту. Numpy, Scipy, matpliotlib, sklearn и т. Д. Именно поэтому существует пробел в понимании более тонких фундаментальных деталей. Ученик - person Rene Duchamp; 06.09.2018
comment
Я знаю, что это старый ответ на данный момент, но то, что вы написали о Conda / Anaconda, кажется мне полностью ложным. - person AMC; 09.01.2020
comment
@Galapagos Ваш ответ вводит в заблуждение и неверен. Anaconda - один из нескольких стандартных дистрибутивов Python. conda отделена от Anaconda, но используется Anaconda. Также сегодня Anaconda в основном предназначена для тех, кто занимается машинным обучением / глубоким обучением и т. Д. Обычный разработчик Python не будет запускать Anaconda на своем ноутбуке. явно ошибочен и устарел. Anaconda используется по умолчанию для большинства видов аналитики и обработки данных с использованием Python сегодня. - person Rich Lysakowski PhD; 11.09.2020

Возможно, я нашел еще одно отличие незначительного характера. У меня есть среда 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.

person J B    schedule 09.01.2019