pyinstaller包含html文件,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打包后的主程序文件夹目录下

31bbdddb91ed835336944d914df8de4c.png

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) }} 变成,然后重新打包

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

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

Python

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)

1

2

3

4

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目录

ca316f061ed282590c0b55affc62962d.pnghtml文件目录

5b64d72bcdc84afc0cfa62322bf0c643.png

生成的html文件里的内容

00cefd13c79dc7c54dd4745cc67c62d9.png

联系作者,QQ: 357244849

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以按照以下步骤来打包一个wxPython的GUI项目: 1. 安装pyinstaller。 ``` pip install pyinstaller ``` 2. 在终端中进入你的GUI项目的根目录。 3. 运行下面的命令来生成.spec文件。 ``` pyinstaller --name=your_app_name --noconsole --add-data="resources/*:resources/" your_app.py ``` 这个命令会在当前目录下生成一个.spec文件,其中your_app_name替换成你的应用程序名称,your_app.py替换成你的应用程序启动器的名称。 其中,--noconsole 表示不显示控制台窗口,--add-data 参数用于指定需要打包的资源文件,格式为 “资源路径:目标路径”。 4. 打开.spec文件,按照下面的方式修改: ``` # -*- mode: python ; coding: utf-8 -*- block_cipher = None a = Analysis(['your_app.py'], pathex=['/path/to/your_app'], binaries=[], datas=[('resources/*', 'resources')], hiddenimports=['your_module'], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) a.datas += [('path/to/your/icon.ico', '.')] pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='your_app_name', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], upx_include=[], runtime_tmpdir=None, console=False ) ``` 其中,修改pathex为你的应用程序的根目录,datas中添需要打包的资源文件路径。name修改为你的应用程序名称。 5. 最后,在终端中运行下面的命令来生成可执行文件: ``` pyinstaller your_app_name.spec ``` 这个命令会在当前目录下生成dist文件夹,其中包含可执行文件和所需的资源文件。 注意:如果你的应用程序中使用了第三方库,需要将这些库添到hiddenimports中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值