QWebEngineView 不适用于 PyInstaller
QWebEngineView not working with PyInstaller
在使用 PyInstaller 打包和使用 QWebEngineView 的应用程序时,我得到一个“空白 canvas”。任何帮助将不胜感激!
这里有一些重现问题的代码...
以下代码在 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 应用程序显示:
所以这似乎是 pyinstaller 中的一个错误,可以通过为 PyQt 创建一个特定文件来修补。
调试此问题的第一个线索是注意当我们从 python 启动时 QtWebEngineProcess.exe 启动(如任务管理器中所见),但它不会随着我们的应用程序启动py安装程序。检查后,在 QtWebEngineProcess.exe 的 pyinstaller 副本旁边写了一个日志,它并没有真正提供有用的消息,但它确实提供了 *.exe 试图启动并崩溃的线索。
似乎在 dist/<app>/PyQt5/Qt/bin
中添加 qt.conf
内容为
[Paths]
Prefix = ..
解决了我的问题。
在使用 PyInstaller 打包和使用 QWebEngineView 的应用程序时,我得到一个“空白 canvas”。任何帮助将不胜感激!
这里有一些重现问题的代码...
以下代码在 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 应用程序显示:
所以这似乎是 pyinstaller 中的一个错误,可以通过为 PyQt 创建一个特定文件来修补。
调试此问题的第一个线索是注意当我们从 python 启动时 QtWebEngineProcess.exe 启动(如任务管理器中所见),但它不会随着我们的应用程序启动py安装程序。检查后,在 QtWebEngineProcess.exe 的 pyinstaller 副本旁边写了一个日志,它并没有真正提供有用的消息,但它确实提供了 *.exe 试图启动并崩溃的线索。
似乎在 dist/<app>/PyQt5/Qt/bin
中添加 qt.conf
内容为
[Paths]
Prefix = ..
解决了我的问题。