QWebEngineView 不适用于 PyInstaller

Posted

技术标签:

【中文标题】QWebEngineView 不适用于 PyInstaller【英文标题】:QWebEngineView not working with PyInstaller 【发布时间】:2020-10-30 20:30:29 【问题描述】:

在使用 PyInstaller 打包和使用 QWebEngineView 的应用程序时,我得到了一个“空白画布”。任何帮助将不胜感激!

这里有一些代码可以重现问题...

以下代码在 python 上运行良好:

import sys

from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl

if __name__ == '__main__':
    app = QApplication(sys.argv)

    view = QWebEngineView()
    view.resize(1024, 600)
    view.load(QUrl('http://www.google.com'))
    view.show()

    sys.exit(app.exec_())

但是在使用pyinstaller toy.py 打包后没有显示任何内容。

python 应用程序显示:

当 pyinstaller 应用程序显示时:

【问题讨论】:

【参考方案1】:

所以这似乎是 pyinstaller 中的一个错误,可以通过为 PyQt 创建特定文件来修补。

调试这个问题的第一个线索是注意当我们从 python 启动时 QtWebEngineProcess.exe 启动(如在任务管理器中看到的),但它不会从我们的应用程序启动 pyinstaller。经检查,在 QtWebEngineProcess.exe 的 pyinstaller 副本旁边写入了一个日志,该日志并没有真正给出有用的消息,但它确实提供了 *.exe 试图启动并崩溃的线索。

似乎将qt.conf 添加到dist/<app>/PyQt5/Qt/bin 的内容

[Paths]
Prefix = ..

解决了我的问题。

【讨论】:

我在这里找到了解决方案:***.com/questions/66646537/using-qwebengine-of-qt5/…

以上是关于QWebEngineView 不适用于 PyInstaller的主要内容,如果未能解决你的问题,请参考以下文章

一个 QWebEnginePage 用于两个或多个 QWebEngineView

采用QWebEngineView引擎设计web浏览器

拉伸因子在 Qt 中是如何工作的?

QWebEngine - 获取当前最大滚动值

QWebEngineView 中的内存泄漏

QWebEngineView 无法运行