最近遇到一个pyinstaller
打包wxPython
pyecharts
无法显示的问题,pyecharts
生成的html页面显示空白。未使用pyinstaller
打包时显示正常。
WebViewBackendDefault = b''
WebViewBackendEdge = b'wxWebViewEdge'
WebViewBackendIE = b'wxWebViewIE'
WebViewBackendWebKit = b'wxWebViewWebKit'
WebViewDefaultURLStr = b'about:blank'
在windows环境非打包情况下使用wxPython
的wx.html2.WebView.New()
使用的是WebViewBackendEdge
的引擎,WebViewBackendEdge
跟Chrome
用的是同一个内核所以能正常显示。 而通过pyinstaller
打包后,pyinstaller
找不到对应的配置文件,无法使用WebViewBackendEdge
的引擎,所以默认打包的浏览器是IE
,而pyecharts
默认使用的是最新版本的echarts
链接,IE
不支持新版本的echarts
的特性,导致页面无法显示的问题
echarts
版本,使用低于3.7.0的版本from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "https://cdn.jsdelivr.net/npm/echarts@3.6.2/dist/"
pyinstaller
打包时指定打包文件, 下面提供两种方法,二选一即可
命令行增加
# 增加这个
--add-binary "{HOMEPATH}/wx/WebView2Loader.dll:."
配置文件xxx.spec增加
# -*- mode: python ; coding: utf-8 -*-
from PyInstaller import HOMEPATH
a = Analysis(
...
# 增加这个
binaries=[(f'{HOMEPATH}/wx/WebView2Loader.dll', '.')],
...
)
完整配置文件xxx.spec
# -*- mode: python ; coding: utf-8 -*-
from PyInstaller import HOMEPATH
a = Analysis(
['main.py'],
pathex=[],
binaries=[(f'{HOMEPATH}/wx/WebView2Loader.dll', '.')],
datas=[('./static/datasets', 'pyecharts/datasets/'), ('./static/templates', 'pyecharts/render/templates/'), ('./static/js', 'static/js/')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='mini-tool',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon=['static\\icon.png','static\\icon.png'],
)
这篇教程详细介绍了三种下载 Windows 10 和 Windows 11 原生镜像的方法,包括通过微软官网、iTellYou 网站和系统库网站下载,帮助你快速获取所需的操作系统镜像文件。