Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
827 views
in Technique[技术] by (71.8m points)

html - Bokeh plots do not display in QWebView

I have following code that works on linux and my windows 7 machine even using WinPython environment:

   # 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)

But when I distribute my application using WinPyhton my plot doesn't show up in QWebView and no error is raised... If I try to load random html-files into QWebView in my app they are displayed. I guess the issue is on Qt side, but I have no clue what to do...

PyQt version in WinPython is 5.5.1

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Bokeh is actually two libraries: a Python library "Bokeh ", and a JavaScript library "BokehJS". The JavaScript library BokehJS is actually what does all the work in the browser, and is absolutely required. A little googling turns up many links, including this other StackOverflow answer, which seem to indicated that QWebView does not load external <script> tags in HTML. If that is the case, you will have to find some other means to load the required BokehJS files. Another option might be to use "inline" BokehJS, which can be accomplished by one way by setting the environment variable BOKEH_RESOURCES=inline when you run the scripts to create the HTML files. Please be aware that this will make individual HTML output files substantially larger (BokehJS is a fairly hefty library) and additionally will defeat any caching of external scripts that modern browsers do (but maybe QWebView doesn't do that anyway).

Lastly, while I do hope you can find a path that works, just to be clear: QWebView is not a "supported" platform, in the sense that no testing is done to ensure Bokeh is compatible with QWebView and no guarantee of compatibility with QWebView is claimed.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...