Здесь я расскажу о шагах по установке ядер MATLAB, R и Julia для ноутбуков Jupyter. Также обсуждаются некоторые подводные камни, с которыми я столкнулся на этом пути. Первоначально они были написаны в ноябре 2016 года.

Блокноты Jupyter — это отличный способ отслеживать конвейеры программирования и изучать концепции посредством программирования. Это также отличный способ вспомнить, как вы, возможно, делали что-то раньше или решали проблему ранее.

Я использую блокноты Jupyter (ранее известные как блокноты IPython) некоторое время, но только для использования с языком программирования Python 2.7. После блестящего курса Coursera Научное программирование Джулии я обнаружил, что существует стремление сделать эти блокноты независимыми от языка. На данный момент доступно несколько ядер для множества языков, включая Julia, R, Ruby и так далее, полный список которых можно найти здесь. В этом посте будут описаны шаги, необходимые для установки ядер MATLAB, R и Julia.

МАТЛАБ

MATLAB (лаборатория матриц) широко распространена в мире научных вычислений и для многих студентов инженерных специальностей и физиков связана только с программированием. Блестящая абстракция от низкоуровневой реализации LAPACK под капотом с приятным высокоуровневым интерфейсом делает MATLAB очень мощным и полезным инструментом. Объедините это с блокнотом Jupyter, и теперь у нас есть способ выражать сложные математические концепции и выполнять вычисления с помощью численных методов в удобной для чтения форме.

Для начала нужно установить MATLAB на свой локальный компьютер. MATLAB — это фирменное программное обеспечение от компании mathworks, но если вы связаны с университетом, вам не составит труда получить лицензию. После установки бинарника необходимо установить движок MATLAB для Python, инструкции по скачиванию можно найти здесь. Системные требования для этих установок можно найти здесь, однако на веб-сайте системных требований указано, что Python 3.5 поддерживается, но я обнаружил, что это не так (14–11–2016 ), так как я столкнулся со следующей ошибкой в ​​​​среде 3.5:

OSError: MATLAB Engine for Python supports Python version 2.7, 3.3 and 3.4, \
but your version of Python is 3.5

Поэтому было решено создать новую среду, чтобы перестраховаться под Python 3.4, используя conda вот так;

conda create -n py34 python=3.4 anaconda
source activate p34

Затем откройте MATLAB и введите:

cd "matlabroot/extern/engines/python"
python setup.py install

Это установит движок MATLAB для Python. После этого нам нужно убедиться, что несколько зависимостей также установлены.

pip install --upgrade pip
pip install jupyter
pip install pymatbridge
pip install matlab_kernel
python -m matlab_kernel install

Можно столкнуться со следующей ошибкой, ее можно устранить, выполнив следующие действия:

conda remove pyzmq && pip install pyzmq

После того, как все эти шаги будут выполнены, вы сможете запустить новую записную книжку Jupyter с ядром MATLAB следующим образом:

jupyter notebook

Затем в записной книжке выберите MATLAB в меню «Создать» в правом верхнем углу. Кроме того, из командной строки можно просто запустить:

jupyter console --kernel matlab

R

R, преемник S, является статическим языком программирования. В отличие от MATLAB, R — это язык с открытым исходным кодом, который существует уже более 20 лет. За это время он зарекомендовал себя как предпочтительный язык для математической статистики и широко используется сегодня. Хотя он и медленнее, чем два других упомянутых здесь языка, это очень выразительный язык, а концепция DataFrame повлияла на многие другие современные языки (Pandas — Python, DataFrames — Julia и т. д.).

Ядро R довольно просто загрузить и установить с помощью менеджера пакетов conda, и я бы порекомендовал прочитать эту полезную статью. К сожалению, я обнаружил эту статью постфактум, а это означало, что мне пришлось преодолеть несколько препятствий, пытаясь заставить все работать на моей машине. Я проделаю шаги, которые я предпринял для установки без использования менеджера пакетов conda, так как это может быть полезно для людей, не использующих conda, но я бы порекомендовал, если вы это сделаете, обязательно следуйте статья, которую я указал выше.

Поскольку на моем компьютере уже установлен R, я не счел необходимым повторно загружать r-essntials с conda, поэтому я последовал инструкции в IRKernel GitHub readme, в которых мне было указано установить соответствующие инструменты разработчика из R следующим образом:

install.packages(c('repr', 'IRdisplay', 'crayon', 'pbdZMQ', 'devtools'))
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()  # to register the kernel in the current R installation

Это вызвало следующую ошибку:

Error in curl::curl_fetch_memory(url, handle = handle) :
Peer certificate cannot be authenticated with given CA certificates

Согласно stackoverflow это легко решается установкой;

library(httr)
set_config( config( ssl_verifypeer = 0L ) )

по подсказке R.

После установки я получил следующую ошибку:

$ which R
/Users/me/anaconda/bin/R

$ /Users/me/anaconda/bin/R
dyld: Library not loaded: @rpath/libpcre.1.dylib
  Referenced from: /Users/me/anaconda/lib/R/lib/libR.dylib
  Reason: image not found
Trace/BPT trap: 5

Это еще одна проблема, которую можно решить, посмотрев этот пост SO.

Мне удалось найти файл libpcre.1.dylib с помощью замечательной команды find:

find / -iname "libpcre.1.dylib"

В качестве альтернативы можно использовать нечеткий поиск fzf, изменив каталог на / и запустив fzf. Оказавшись внутри программы, просто введите: libpcre.1.dylib, и она найдет вас (это может занять некоторое время)

Наконец, последним шагом было заставить Jupyter увидеть только что установленное ядро, введя следующее в R:

# in R 3.3
IRkernel::installspec(name = 'ir33', displayname = 'R 3.3')
# in R 3.2
IRkernel::installspec(name = 'ir32', displayname = 'R 3.2')

Чтобы обеспечить это для всей системы, установите для пользователя значение FALSE:

IRkernel::installspec(user = FALSE)

Когда это связано, вы должны быть в стороне и читать, чтобы использовать R в блокнотах Jupyter.

Юля

Julia — это относительно новый язык программирования, разработанный как современный научный язык программирования 21 века.

Здесь — хороший путеводитель по быстрому началу работы.

Джулия определенно была самой простой из трех упомянутых здесь ядер. Все, что требуется, это загрузить Julia версии 0.4 или выше на свой ноутбук и выполнить следующие команды из Julia:

Pkg.add("IJulia")

Потом:

using IJulia
notebook()

откроет новую вкладку в браузере по умолчанию.

Было несколько подводных камней, с которыми я столкнулся, основной из которых была проблема с несколькими графическими пакетами с Julia.0.5.0 (14–11–2016). Вернулся на Юлию 0.4.6 и вроде все работает. Я уверен, что это только временная проблема и будет решена в ближайшее время.

Другой сбой, который когда-то мог возникнуть, может быть связан с этой проблемой с невозможностью запуска ядра (обратите внимание, это та же проблема, упомянутая выше для ядра MATLAB).

conda remove pyzmq
pip install pyzmq

Заключительные комментарии.

Я сосредоточился на установке ядер, которые я считаю наиболее полезными для Scientific Computing, однако список других ядер можно найти здесь. Проект Jupyter творит чудеса, помогая многим людям изучать программирование, а также исследовательскому сообществу, делясь кодом и методологией. Я надеюсь, что это может продолжаться, и если вы прочитали это и тоже считаете, что это круто, вы можете узнать больше на их веб-сайте. Поскольку Jupyter — это проект с открытым исходным кодом, вы всегда можете внести свой вклад на GitHub или другими способами через пожертвования!