2015-08-21 4 views
1

Согласно NumPy documentation:Зачем устанавливать NumPy через двоичный пакет?

В большинстве случаев используют лучший способ установить NumPy на вашей системе, используя устанавливаемый бинарный пакет для вашей операционной системы.

Но почему он не может быть установлен так же легко, как pip?

Как я понимаю, NumPy необходимо скомпилировать что-то отличное от чистого Python в соответствии с целевой машиной. Как это работает? Содержит ли бинарный пакет исходные файлы C и компилятор C? Или он содержит все предварительно скомпилированные двоичные файлы и просто выбирает правильные для установки на основе операционной системы?

+0

Зачем компилировать ядро? Потому что: некоторая более высокая производительность .... – dsgdfg

ответ

4

Пакет pip содержит только распределение источников numpy, которое включает в себя расширения, написанные на C, поэтому для его создания вам понадобится рабочий C-компилятор (и это, конечно же, не будет предварительно упаковано с numpy источник). Вам также понадобится библиотека LAPACK, которая, если вы ее построите из источника, вероятно, также потребует компилятор FORTRAN 77.

Как легко установить numpy через pip будет зависеть от того, в какой среде вы работаете. Вообще говоря, довольно легко настроить необходимую инструментальную цепочку, если вы используете Linux или OSX. Обычно пользователи Windows имеют проблемы с большинством проблем из-за гораздо более низкого состояния поддержки компилятора, поэтому обычной рекомендацией является установка из двоичного дистрибутива. Распределение Anaconda и Christoph Gohlke's pre-built binaries, вероятно, являются двумя наиболее популярными опциями.

Если вы пользователь Windows, и вы чувствуете себя особенно авантюрно/мазохистски, есть также инструкции по компиляции numpy и scipy из источника here.

+0

Итак, что делает устанавливаемый бинарный пакет? Просто распакуйте предварительно скомпилированные файлы? – lengxuehx

+0

Для расширений C, по существу, да (компоненты Python распределены как есть). В дистрибутиве Anaconda также есть собственный менеджер пакетов 'conda', который также работает с использованием модулей Python с предварительно скомпилированными расширениями C и т. Д. –

+0

Я не знаю, получил ли я его. Насколько я понимаю, устанавливаемый двоичный пакет, такой как Anaconda-2.3.0-Windows-x86.exe, содержит необходимые предварительно скомпилированные C-расширения для всех платформ и выбирает подходящие для установки. Это так? – lengxuehx

0

Важнейшей причиной является то, что вам нужна реализация BLAS/LAPACK. Существует много вариантов, и если вы не знаете, что делаете, вам лучше, когда кто-то выберет это для вас.

Intel MKL - один из лучших вариантов, но он не является полностью бесплатным. Используют бинарные файлы Кристофа Гольке. Continuum Analytics продает binaries built with MKL отдельно.

Смежные вопросы