pywebview gui='cef' 生成app报错—— 中断点 已到达中断点
pywebview是一个轻量级跨平台包装器,允许在其自己的本机GUI窗口中显示HTML内容。它提供了桌面应用程序中Web技术的强大功能,隐藏了GUI基于浏览器的事实。这个玩意儿好啊,可以直接让我们做的网页demo打包成app,简直就是神器。但是当我用pyinstaller打包pywebview生成一个app文件时,却发现了一些问题。当gui="qt"或者gui="mshtml"或者gui不赋值使用默认值或者在主函数开头设置 PYWEBVIEW='cef'时,会发现在win10下打包后的程序可执行(这种情况,Echarts图表动态刷新的数据会莫名乱跳)。当gui="cef"时,在win10下打包后的程序不可执行(这种情况,python运行pywebview时,Echarts图表刷新的数据不会跳动)。在设置gui="cef"时,点击打包生成的exe文件,报错如下:

debug.log 文件会输出如下信息:[0812/112825.786:ERROR:icu_util.cc(133)] Invalid file descriptor to ICU data received.
于是,开始想着解决这个问题,先走一波常规流程,直接度娘、谷歌,一顿操作后发现还是没有找到解决办法。诸如网上一些 什么内存泄漏、版本过低等原因,试了都没有解决。于是直接去github下向作者提issue,终于有神秘网友成功帮我解决了这个问题。真的是很感谢,很感动,在此把解决办法记录下来,担心以后会忘了这个骚操作,同时也分享给遇到同样问题的朋友。
博主系统环境:
win10 64
python3.6
pywebview 3.0.1
cefpython3 66.0
PyInstaller 3.5
解决办法:
1.去cefpython3的github网址上https://github.com/cztomczak/cefpython把源码下载下来,在工程文件夹的 /examples/pyinstaller目录下拷贝 hook-cefpython3.py 文件

2.把刚复制的hook-cefpython3.py文件粘贴到 /site-packages/PyInstaller/hooks/下(这个要参考自己的PyInstaller安装路径)

大功告成,再次打包,发现生成的exe文件已经没毛病了!
知识点补充:
①CEF(Chromium嵌入式框架)——Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。除了提供C/C++接口外,也有其他语言的移植版。因为基于Chromium,所以CEF支持Webkit&Chrome中实现的HTML5的特性,并且在性能上面,也比较接近Chrome。
②CEF Python是由Czarek Tomczak于2012年创建的一个开源项目,旨在为Chromium Embedded Framework提供python绑定。嵌入CEF浏览器的示例可用于许多流行的GUI工具包,包括:wxPython,PyQt,PySide,Kivy,Panda3D,PyGTK,PyGObject,PyGame / PyOpenGL和PyWin32。
③pywebview加载的html、css、js可能不会支持一些比较新的语法,比如js的箭头函数、fill方法填充数组等,在使用时一定要注意。
④gui="cef"时,在windows平台下必须要保证python安装 cefpython3。gui等于其它值时,可以不用安装cefpython3。当然,gui不等于"cef"时,如果程序要用pyinstaller打包,那么hook-cefpython3.py 不能拷贝到 ... /site-packages/PyInstaller/hooks/下,否则会无法运行执行打包命令
pywebview gui='cef' 生成app报错—— 中断点 已到达中断点的更多相关文章
- eact native生成APP报错:You have not accepted the license agreements of the following SDK components:
一.报错信息 * What went wrong: A problem occurred configuring project ':app'. > You have not accepted ...
- 用itext生成PDF报错:Font 'STSong-Light1' with 'UniGB-UCS2-H' is not recognized.
用itext生成PDF报错,加上try catch捕获到异常是 BaseFont bFont = BaseFont.createFont("STSong-Light1", &quo ...
- 报错:已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
SqlParameter[] sp = { new SqlParameter("@nGridID",SqlDbType.BigInt), new SqlParameter(&quo ...
- asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!)
原文:asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!) 我想用post的方式把一个页面表单的值,传到另一个页面.当我点击Default.as ...
- 使用自编译的Emacs26.0.50build10版本,helm报错(已解决)
使用自编译的Emacs26.0.50build10版本,helm报错(已解决) */--> code {color: #FF0000} pre.src {background-color: #0 ...
- Core在IIS的热发布问题或者报错文件已在另一个程序中打开
关于Core发布到IIS的热发布问题,或者覆盖dll文件的时候会报错"文件已在另一个程序中打开",也就是无法覆盖程序的问题,经过百度和分析总结以下几种方案: 一.使用app_off ...
- pyinstaller 将.py生成.exe ----报错 “IndexError: tuple index out of range”
pyinstaller将py打包为exe文件,用pysintaller居然报错 File "c:\anaconda3\lib\site-packages\PyInstaller\depend ...
- npm 打包 electron app 报错问题
在进行desktop打包过程中,遇到如下报错: 0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\node ...
- Eclipse及Eclipse为基础的App报错“Failed to create the Java Virtual Machine”的解决办法
由于OracleJDK马上就要收费了,公司要求更换OpenJDK,结果安装后Eclipse及Eclipse为基础的App启动报错:“Failed to create the Java Virtual ...
随机推荐
- NOI2019赛前两周被吊打记录
7.1 T1看了半天发现会个暴力FWT,然后突然返发现随便容斥一下就好了 T2猜了个只有13和23的,结果打个表发现伪了,然后标号不只一种连搜索都写错了,也没想过可以轮廓线dp,菜哭了o(╥﹏╥)o ...
- 使用Sonatype Nexus搭建Maven私服后,如何添加第三方JAR包
使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包 步骤如下 1.打开nexus地址,进行登录 2.登录Nexus后,点击右侧的“Repositories”,显示当前Nexus ...
- 我们能从java的HelloWorld学到什么?
这是每个Java程序员都知道的.虽然简单,但是从一个简单的问题可以引入更深的思考.在这篇文章中,我们将讨论这个简单的程序.如果能更多的帮到你,请留下宝贵的意见. HelloWorld.java pub ...
- Dll注入技术之远程线程注入
DLL注入技术之远线程注入 DLL注入技术指的是将一个DLL文件强行加载到EXE文件中,并成为EXE文件中的一部分,这样做的目的在于方便我们通过这个DLL读写EXE文件内存数据,(例如 HOOK EX ...
- sql准确判断某个ip
问题:如图 当我执行sql要准确查找某个IP是属于哪个库室时候,我刚开始是这样写的 select * from Definition_Read_Room where HFIP like '%172.2 ...
- python3没有urllib2 出现报错:语法错误
我的代码:import sklearn.datasets bug: 法错误. 我的原因:Python3运行的时候的运行了你下载的urllib2.py文件,而这个文件是不属于Python3的. 解决办法 ...
- 极限学习机(Extreme Learning Machine)学习笔记
最近研究上了这个一个东西--极限学习机. 在很多问题中,我大多会碰到两个问题,一个是分类,另一个就是回归.简单来说,分类是给一串数打个标签,回归是把一串数变为一个数. 在这里我们需要处理的数据一般维度 ...
- Adobe Fireworks CS6 win64的安装
网页三大剑客之一 FW的安装 本人也是找了半天才找到的. (没有视频)这里先感谢原帖给我的链接https://blog.csdn.net/qq_38053395/article/details/ ...
- 4.8 this关键字
/** * 测试this * @author Hank * */ /* 创建一个对象分为如下四步: 1.分配对象空间,并将对象成员变量初始化为0或空 2.执行属性值的显示初始化 3.执行构造方法 4. ...
- Python匹马行天下之_循环
一.while循环 如果条件成立(true),重复执行相同操作,条件不符合,跳出循环 while 循环条件: 循环操作 (1)while循环示例 例:输入王晓明5门课程的考试成绩,计算平均成绩 1 ...