QtWebEngine 不能从 python 脚本运行



我正在尝试自己构建QtWebEngine并使用python脚本的构建。我一直在跟随这个问题的一步一步的答案:如何用专有的编解码器在Windows上编译Qt web引擎(5.11),并设法构建exe。然后,当我第一次尝试运行exe(在它自己或在我自己的python脚本中)时,它给了我一个错误:The application was unable to start correctly (0xc000007b)。除此之外,我意识到pip安装的qtwebengine文件夹中的QtWebEngineProcess exe是578KB,而我构建的exe只有16KB,这看起来很奇怪。

然后我在这个问题https://forum.qt.io/topic/65974/the-application-was-unable-to-start-correctly-0xc000007b/2中看到一个人说要用windeployqt运行exe,我这样做了,它在QtWebEngineProcess.exe文件周围生成了许多文件,允许它在该文件夹中运行,尽管当然没有发生任何事情,它不会给出错误。

然而,这样做的想法是使用我的python脚本运行exe,所以我试图以某种方式替换它在我的python目录中,但没有运气。当只是更换exe它给我相同的The application was unable to start correctly错误。当我替换整个bin文件夹时,它在python中给了我这个错误:ImportError: DLL load failed while importing QtWidgets: %1 is not a valid Win32 application.此外,我的PyQt5和PyQtWebEngine版本在python中都是5.15.4,但是我在编译时使用的版本是5.9.9。我意识到这可能是一个非常基本的错误,但我找不到5.15.4在Qt安装程序,所以只是去了。关于这种行为发生的原因以及如何修复它,以便我可以在我的python脚本中使用构建的任何想法?如有任何帮助,不胜感激。

您必须使用与PyQt5编译时相同的Qt版本。

PyQt的版本通常与Qt相同,但这不是强制性的,例如PyQt5 5.15.4使用的Qt版本是5.15.2。

python -c "from PyQt5.QtCore import PYQT_VERSION_STR, QT_VERSION_STR; print(f'PyQt5 version: {PYQT_VERSION_STR}, Qt version: {QT_VERSION_STR}')"

输出:

PyQt5 version: 5.15.4, Qt version: 5.15.2

同样的练习可以应用于PySide2:

python -c "from PySide2 import __version__; from PySide2.QtCore import qVersion; print(f'PySide2 version: {__version__}, Qt version: {qVersion()}')"

输出:

PySide2 version: 5.15.2, Qt version: 5.15.2

最新更新