1

Я могу запустить следующий код в ноутбуке Jupyter (Python 3.5) на своем ПК с помощью Anaconda, и он отлично работает. Но когда я запускаю тот же код в ноутбуке Azure ML, я получаю график, но также сообщение об ошибке, описанное ниже. Кто-нибудь знает, как использовать Bokeh в ноутбуках Azure ML? Есть, возможно, способ импорта, казалось бы, отсутствующий модуль «ipykernel»Как я могу использовать Bokeh в ноутбуке Azure ML

from bokeh.plotting import figure, show, output_notebook 
from bokeh.sampledata.iris import flowers 

colormap = {'setosa': 'red', 'versicolor': 'green', 'virginica': 'blue'} 
colors = [colormap[x] for x in flowers['species']] 

p = figure(title = "Iris Morphology") 
p.xaxis.axis_label = 'Petal Length' 
p.yaxis.axis_label = 'Petal Width' 

p.circle(flowers["petal_length"], flowers["petal_width"], 
    color=colors, fill_alpha=0.2, size=10) 

output_notebook() 
show(p) 

производит сюжет, но и следующие ошибки

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-17-c50d1a94007e> in <module>() 
13 
14 output_notebook() 
---> 15 show(p) 

/home/nbuser/env3/lib/python3.4/site-packages/bokeh/io.py in show(obj,  browser, new) 
    299 
    300  ''' 
--> 301  return _show_with_state(obj, _state, browser, new) 
    302 
    303 def _show_with_state(obj, state, browser, new): 

/home/nbuser/env3/lib/python3.4/site-packages/bokeh/io.py in  _show_with_state(obj, state, browser, new) 
    307 
    308  if state.notebook: 
--> 309   comms_handle = _show_notebook_with_state(obj, state) 
    310 
    311  elif state.server_enabled: 

/home/nbuser/env3/lib/python3.4/site-packages/bokeh/io.py in  _show_notebook_with_state(obj, state) 
    329   comms_target = make_id() 
    330   publish_display_data({'text/html': notebook_div(obj, comms_target)}) 
--> 331   handle = _CommsHandle(get_comms(comms_target), state.document,  state.document.to_json()) 
    332   state.last_comms_handle = handle 
    333   return handle 

/home/nbuser/env3/lib/python3.4/site-packages/bokeh/util/notebook.py in get_comms(target_name) 
    109 
    110  ''' 
--> 111  from ipykernel.comm import Comm 
    112  return Comm(target_name=target_name, data={}) 
    113 

ImportError: No module named 'ipykernel' 

In [16]: 

ответ

2

Там есть два варианта, я думаю. В записной книжке, я думаю, что вы можете использовать conda для установки новых пакетов в среде AzureML, выполнив ячейку со следующим:

!conda install ipykernel --yes 

Обратите внимание на ! в самом начале. В ноутбуках Jupyter это означает выполнение команды как команды оболочки.

Althernatively, в предстоящем 0.12.2 выпуска позже на этой неделе (сегодняшняя дата: 2016-08-28) «ноутбук порта связи» функция, которая использует ipykernel для импорта больше не будет «включено» все время, и будет использоваться только при явном запросе. Это также должно решить эту проблему.

До выхода 0.12.2 вы можете использовать эти новые функции, установив «dev build» или release. На главном сайте документов есть простые инструкции для installing developer builds. (Вы можете установить так же с помощью !conda в записной книжке, как описано выше.)

+0

Спасибо, я не знал о comada comand. Кажется, он работает сейчас (даже без установки! Conda), поэтому я предполагаю, что установлена ​​версия 0.12.2 (сегодня - 2016-08-31). Однако после отображения графика весь ноутбук теперь становится невосприимчивым, и даже перезагрузка ядра не вернет его к жизни ... –

+0

'0.12.2' еще не выпущен, и я бы сказал, что сомнительно, что у вас есть" Developer Preview build ", если вы явно не сделали этого сами. Для справки, установленную версию можно проверить, изучив «bokeh .__ version__». Также, чтобы быть полностью понятным, 'conda' - это инструмент командной строки оболочки, а'! '- специальный Jupyter-ноутбук для выполнения команд оболочки из ноутбука. – bigreddot

1

@MortenBunesGustavsen, мне известно, есть две разные версии питона для Azure ML ноутбук, который включают в себя python3.4 на env3 хозяина и python3.5 на anaconda3_410 хозяина , Вы можете напрямую получить доступ к URL-адресу http://notebooks.azure.com, чтобы использовать Bokeh без каких-либо ошибок в среде python3.5 с ipykernel, а не получить доступ к jupyter (python3.4 без ipykernel) от студии Azure ML.

Пожалуйста, проверьте версию исполнения с помощью приведенного ниже кода.

In [1]: import sys 
In [2]: sys.version 
Out[2]: '3.5.1 |Anaconda custom (64-bit)| (default, Jun 15 2016, 15:32:45) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]' 

Надеюсь, это поможет.

+0

Это сработало, спасибо! Знаете ли вы, как я могу импортировать набор данных из своей учетной записи Azure ML в ноутбук Jupyter в этой среде? –

+0

только что нашел, что я могу импортировать данные так же, как в другой среде Jupyter ... через команду azureml.Workspace. –

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