Anaconda стал очень популярным в научных вычислениях, поскольку он объединяет более 125 наиболее широко используемых библиотек анализа данных Python. Мой вопрос в том, что, поскольку у нас уже есть pip (который является очень широко используемым менеджером пакетов Python), зачем нам Anaconda? Разве мы не можем просто набрать pip install
для каждой из 125 + библиотек, и все они будут хорошо работать вместе? Или они не будут хорошо работать вместе, а это означает, что Anaconda оказала нам большую услугу, разобрав проблемы, возникающие при попытке получить 125+ библиотеки для взаимодействия?
Зачем нам Anaconda, когда у нас есть пип?
Ответ 1
Три основных причины:
- Для большинства из этих библиотек требуется связывание с установленными на компьютере библиотеками (например, HDF5 для PyTables или ATLAS для Numpy), которые пользователь может или не может знать. Обратите внимание, что Matplotlib требует кучу разных графических библиотек, и если они отсутствуют, он будет разбиваться на определенные серверы.
- pip компилирует библиотеки (с колесами можно избежать этого шага, хотя). Для этого требуется компилятор C (сложный в Windows) и компилятор FORTRAN (сложный в Mac и Windows). Это также требует времени для больших библиотек, таких как Scipy.
- Anaconda metapackage anaconda - это минимальный набор библиотек, которые Continuum удостоверились в том, что они хорошо играют вместе. В идеальном мире мы всегда должны использовать последнюю и самую улучшенную версию всего, но это может привести к несовместимости.
И дополнение:
- Легко использовать conda для создания набора пакетов для распространения. Таким образом, вы можете легко поделиться своим пакетом, включая все его зависимости.
Ответ 2
Проблема заключается в том, что многие из этих научных пакетов имеют зависимости от множества внешних библиотек C и друг с другом, с которыми не справляется pip.
Например, см. мой вопрос: Как установить Bootstrap numpy в setup.py
Это было для моей собственной библиотеки, но я думаю, что многие другие пакеты сталкиваются с аналогичной проблемой.
Кроме того, компиляция библиотек занимает много времени. Просто набрав pip install numpy
на моей машине, потребуется более минуты. По той же причине люди используют предварительно скомпилированные двоичные файлы с apt-get
или yum
вместо компиляции программ из источника.