Запустите Dash из ноутбука Jupyter - PullRequest
1 голос
/ 02 апреля 2019

Есть ли способ запустить Dash Dahsboard с помощью приведенной ниже строки кода в блокноте Jupyter?

# if __name__ == '__main__':
#     app.run_server(debug=True)

Когда я пытаюсь запустить это, я получаю сообщение об ошибке.

Единственный способ исправить это - установить для debug значение false.Но тогда панель инструментов не обновляется автоматически при изменении данных, поступающих на диаграммы.

1 Ответ

2 голосов
/ 03 апреля 2019

РЕДАКТИРОВАТЬ

Я только что узнал, что один ценный пользователь GitHub опубликовал следующую библиотеку .Это прямая ссылка на соответствующий репо .Посмотрите его документацию и примеры, чтобы успешно реализовать ее в jupyter.Это сработало для меня.

Не недооценивайте это утверждение перед установкой библиотеки: «Настоятельно рекомендуется использовать среду virtualenv»!

Оригинальный пост

У меня сама была эта проблема некоторое время назад.Я не знаю, исправлено ли это сейчас.Обходной путь, который я использовал в тот раз, это время.Это прямо от самого Криса, но у него все еще есть debug = False:

from IPython import display
def show_app(app,  # type: dash.Dash
             port=9999,
             width=700,
             height=350,
             offline=True,
             style=True,
             **dash_flask_kwargs):
    """
    Run the application inside a Jupyter notebook and show an iframe with it
    :param app:
    :param port:
    :param width:
    :param height:
    :param offline:
    :return:
    """
    url = 'http://localhost:%d' % port
    iframe = '<iframe src="{url}" width={width} height={height}></iframe>'.format(url=url,
                                                                                  width=width,
                                                                                  height=height)
    display.display_html(iframe, raw=True)
    if offline:
        app.css.config.serve_locally = True
        app.scripts.config.serve_locally = True
    if style:
        external_css = ["https://fonts.googleapis.com/css?family=Raleway:400,300,600",
                        "https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css",
                        "http://getbootstrap.com/dist/css/bootstrap.min.css", ]

        for css in external_css:
            app.css.append_css({"external_url": css})

        external_js = ["https://code.jquery.com/jquery-3.2.1.min.js",
                       "https://cdn.rawgit.com/plotly/dash-app-stylesheets/a3401de132a6d0b652ba11548736b1d1e80aa10d/dash-goldman-sachs-report-js.js",
                       "http://getbootstrap.com/dist/js/bootstrap.min.js"]

        for js in external_js:
            app.scripts.append_script({"external_url": js})

    return app.run_server(debug=False,  # needs to be false in Jupyter
                          port=port,
                          **dash_flask_kwargs)

Так что использовать его таким образом - переключение функций обратного вызова для вас?Пожалуйста, покажите часть логики вашей программы.Может быть, я могу помочь с дальнейшими советами.Приветствия.

...