JupyterLabs中的JupyterDash在先前的单元格中使用plotly express后失败



我有一个笔记本,我想在其中使用plot显示一些交互式图形,然后使用JupyterDash在笔记本中构造一个仪表板。下面的代码在我的机器上运行良好:

import numpy as np
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df = pd.DataFrame({'category':['a','b','c'],
'value':[1,2,3]})
px.bar(df, x='category', y='value')
import dash
from jupyter_dash import JupyterDash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = JupyterDash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(
[
html.H1("Test dashboard")    
]
)
if __name__ == '__main__':
app.run_server(mode='inline', debug=True, port=8060)

但是,当我将这段代码分成两个单元格时,如下所示:

细胞1

import numpy as np
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
df = pd.DataFrame({'category':['a','b','c'],
'value':[1,2,3]})
px.bar(df, x='category', y='value')

细胞2

import dash
from jupyter_dash import JupyterDash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = JupyterDash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(
[
html.H1("Test dashboard")    
]
)
if __name__ == '__main__':
app.run_server(mode='inline', debug=True, port=8060)

然后我收到以下错误:

AttributeError: module 'google.colab.output' has no attribute 'serve_kernel_port_as_iframe'

这两种情况的唯一不同之处在于,在第二种情况下,代码被分成两个单元格。但是,在场景2中,如果我注释掉第一个单元格中对px.bar的调用,仪表板将正常显示。

我试过了:

  • 多个不同的端口号
  • 将各种软件包更新到最新版本,包括plotly, dash, JupyterDash和google.colab

非常感谢您提供的任何见解

通过将JupyterDash降级到早于在Google Colab上运行的功能的版本来解决,这导致了问题:

pip install jupyter-dash==0.2.1

最新更新