wxpython加pyinstaller加pyecharts(解决python打包exe不兼容问题)
简单介绍:wxpython和pyecharts可以搭配使用,在桌面程序中展示web形式的图表。但是在使用pyinstaller打包成exe文件后,可能会出现如下BUG:
BUG1:在用pyinstaller将wxpython程序打包成exe文件后,运行会发生TemplateNotFound: simple_chart.html
的报错信息。
这时候,需要把pyechats 的在python环境里的html文件拷贝出来,目录用/pyecharts/templates/ 然后放置在pyinstall打包后的主程序文件夹目录下
BUG2.生成了HTML文件之后,没有加载JS
1.去echarts官网下载echarts.common.min.js放在resource目录下
2.修改Libsite-packagespyechartstemplates的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目录
生成的html文件里的内容