Графики Bokeh не отображаются в QWebView

У меня есть следующий код, который работает на Linux и моей машине Windows 7, даже используя среду WinPython :

# plt_file is valid html produced by Bokeh and that is correctly displayed in browser with open(plt_file, "r") as f: plot = f.read() # self.plot_web_view.setContent(plot) url = QUrl(plt_file) self.plot_web_view.setHtml(plot, url) 

Но когда я распространяю свое приложение с помощью WinPyhton мой сюжет не появляется в QWebView и ошибка не возникает … Если я пытаюсь загрузить случайные html-файлы в QWebView в моем приложении, они отображаются. Я думаю, проблема в Qt , но я не знаю, что делать …

Версия PyQt в WinPython – 5.5.1

Solutions Collecting From Web of "Графики Bokeh не отображаются в QWebView"

будет ли это работать лучше?

  plot = "" with open(plt_file, "r") as f: plot = f.read() # self.plot_web_view.setContent(plot) url = QUrl(plt_file) self.plot_web_view.setHtml(plot, url) 

Bokeh на самом деле две библиотеки: библиотека Python «Bokeh» и библиотека JavaScript «BokehJS». Библиотека JavaScript BokehJS на самом деле является тем, что делает всю работу в браузере и абсолютно необходимо. Небольшой поиск в Google вызывает много ссылок, в том числе и другой ответ StackOverflow , который, как представляется, указывает, что QWebView не загружает внешние tags в HTML. Если это так, вам нужно будет найти другие средства для загрузки необходимых файлов BokehJS. Другим вариантом может быть использование встроенного BokehJS, который может быть выполнен одним способом, установив переменную среды BOKEH_RESOURCES=inline при запуске скриптов для создания файлов HTML. Имейте в виду, что это сделает отдельные файлы вывода HTML существенно большими (BokehJS - довольно здоровенная библиотека) и дополнительно победит любое кэширование внешних скриптов, которые делают современные браузеры (но, возможно, QWebView этого не делает).

Наконец, хотя я надеюсь, что вы найдете путь, который работает, просто для того, чтобы быть ясным: QWebView не является «поддерживаемой» платформой в том смысле, что тестирование не выполняется для обеспечения совместимости Bokeh с QWebView и гарантии совместимости с QWebView .