wxpython解决pyechart打包exe不兼容问题

简单介绍:wxpython和pyecharts可以搭配使用,在桌面程序中展示web形式的图表。但是在使用pyinstaller打包成exe文件后,可能会出现如下BUG:

BUG1:在用pyinstaller将wxpython程序打包成exe文件后,运行会发生TemplateNotFound: simple_chart.html的报错信息。

这时候,需要把pyechats 的在python环境里的html文件拷贝出来,目录用/pyecharts/templates/ 然后放置在pyinstall打包后的主程序文件夹目录下

wxpython解决pyechart打包exe不兼容问题

BUG2.生成了HTML文件之后,没有加载JS

1.去echarts官网下载echarts.common.min.js放在resource目录下

2.修改Lib\site-packages\pyecharts\templates\的simple_page.html和simple_chart.html 的{{ echarts_js_dependencies(chart) }} 变成<script type="text/javascript" src="../echarts.common.min.js"></script>,然后重新打包

(补充解释:把echarts.common.min.js 放在pyecharts生成的HTML文件的上级目录里,对应src="../echarts.common.min.js")

4.修改wxpython的代码,在frame里增加一个webview

self.frame = reportFrame.MyFrame(None, wx.ID_ANY, "")
self.wv = webview.WebView.New(self.frame.panel_1, size=(500, 600)) # 加了这行就能整体拖动了
name = os.path.abspath(os.getcwd() + './resource/reports/init_report.html')
self.wv.LoadURL("file:///"+name)

5.把pyecharts/template目录和resource目录一起拷贝到manage目录下(manage是因为我打包的时候用的命令是pyinstaller -D manage.py)

因为有读者不是很明白文件结构,下面附上我的resource目录和pyechart生成的结构html文件目录

resource目录

wxpython解决pyechart打包exe不兼容问题

wxpython解决pyechart打包exe不兼容问题

生成的html文件里的内容

wxpython解决pyechart打包exe不兼容问题

上一篇:为k8s里运行的容器配置时区


下一篇:支付宝、微信、QQ红包大战,商家选谁更靠谱?