使用PyWebView+CEF启动WebApp及打包exe遇错误求助
CEF+Webview运行与打包错误解决方案
一、运行时“CEF window with uid master does not exist”错误处理
- 错误原因:手动导入
cefpython干扰了webview的内部CEF初始化流程 - 解决方法:移除代码中手动导入的
cefpython模块,修改后的代码如下:
import webview webview.create_window('test', 'http://www.stackoverflow.com') webview.start(gui='cef')
修改后运行,错误提示会消失,窗口正常打开。
二、PyInstaller打包后“Invalid file descriptor to ICU data received”错误处理
该错误是因为CEF依赖的ICU数据文件和本地化资源未被正确打包,可通过以下步骤解决:
方法1:修改PyInstaller spec文件
- 生成spec文件:在终端执行
pyi-makespec your_script.py
- 打开生成的
your_script.spec文件,做两处修改:- 在
datas列表中添加CEF资源路径(替换为你Python环境中cefpython3的实际安装路径):datas=[ (r"C:\Python39\Lib\site-packages\cefpython3\locales", "locales"), (r"C:\Python39\Lib\site-packages\cefpython3\icudtl.dat", "."), ], - 添加
hiddenimports确保依赖被识别:hiddenimports=["cefpython3", "webview"]
- 在
- 基于spec文件打包:
pyinstaller your_script.spec
方法2:直接用命令行参数打包
无需修改spec文件,直接在终端执行打包命令(替换路径为实际路径):
pyinstaller --add-data "C:\Python39\Lib\site-packages\cefpython3\locales;locales" --add-data "C:\Python39\Lib\site-packages\cefpython3\icudtl.dat;." --hidden-import=cefpython3 --hidden-import=webview your_script.py
内容的提问来源于stack exchange,提问作者toben aus
相关产品推荐
相关产品推荐

