我可以使用Anaconda在我的电脑上的Jupyter笔记本(Python 3.5)中运行以下代码,它运行正常。但是,当我在Azure ML笔记本中运行相同的代码时,我得到了图,但也出现了下面描述的错误消息。有谁知道如何在Azure ML笔记本中使用Bokeh?是否有一种方法可以导入看似缺失的模块'ipykernel'
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]:
答案 0 :(得分:2)
我认为有两种选择。在笔记本中,我认为您可以使用conda
在AzureML环境中安装新软件包,方法是执行包含以下内容的单元格:
!conda install ipykernel --yes
注意开头的!
。在Jupyter笔记本中,这意味着将命令作为shell命令执行。
另外,在即将发布的0.12.2
本周晚些时候发布的(今天的日期:2016-08-28)使用ipykernel
导入的“笔记本电脑通讯”功能将不再一直“打开”,只会在明确要求时使用。这也应解决这个问题。
在0.12.2
发布之前,您可以通过安装“dev build”或候选版本来使用这些新功能。主要文档网站有installing developer builds的简单说明。 (您可以在笔记本中使用!conda
进行类似的安装,如上所述。)
答案 1 :(得分:1)
@MortenBunesGustavsen,据我所知,Azure ML笔记本有两个不同版本的python,python3.4
主机上有env3
,python3.5
主机上有anaconda3_410
。您可以直接访问网址http://notebooks.azure.com
以使用Bokeh
在python3.5
环境中使用ipykernel
而不会出现任何错误,而无法从Azure访问jupyter(不带ipykernel的python3.4) 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)]'
希望它有所帮助。