我已经在 CentOS 和 Windows 上安装了 Anaconda 环境。
并使用 conda 安装了 PySide2。
问题是我的项目在 CentOS 中运行良好,但在 Windows 中,运行服务器时显示“ModuleNotFoundError: No module named 'PySide2.QtWebKitWidgets'”。
Conda、pyhon、pip、PySide2 和 PyQt5 的版本在两个操作系统中都是相同的。
我不知道怎么了?
我已经在 CentOS 和 Windows 上安装了 Anaconda 环境。
并使用 conda 安装了 PySide2。
问题是我的项目在 CentOS 中运行良好,但在 Windows 中,运行服务器时显示“ModuleNotFoundError: No module named 'PySide2.QtWebKitWidgets'”。
Conda、pyhon、pip、PySide2 和 PyQt5 的版本在两个操作系统中都是相同的。
我不知道怎么了?
我在使用 pyside2 创建示例应用程序时遇到了同样的问题,错误消息如下:
回溯(最后一次调用):文件“browse.py”,第 7 行,文件“/usr/local/lib/python3.7/dist-packages/shiboken2/files.dir/shibokensupport/feature.py ”,行146,在_import文件“/home/pjm/prj/eis3/gui/browser.py”中,第15行,在文件“/usr/local/lib/python3.7/dist-packages/shiboken2/files.dir/shibokensupport /功能.py",第 146 行,在 _import ModuleNotFoundError 中:没有名为 'PySide2.QtWebKitWidgets' 的模块
所以问题是设计师或pyside2-uic的版本使用的是旧的QtWebKitWidgets,而不是我认为更现代的QtWebEngineView。
我实际上认为是我的设计器版本产生了以下摘录:
<customwidget>
<class>QWebView</class>
<extends>QWidget</extends>
<header>QtWebKitWidgets/QWebView</header>
</customwidget>
无论如何,我通过 makefile 中的 sed 脚本“修复”了这个问题,如下所示:
browser.py: browser.ui makefile
pyside2-uic $< --output temp.txt
cat temp.txt | sed s/QtWebKitWidgets/QtWebEngineWidgets/g | sed s/QWebView/QWebEngineView/g > $@
我的设计器版本是 5.11.3,它安装在 debian 上,这可以解释这一点。简而言之,我认为问题可能是用于创建 ui 文件的设计器版本。
QtWebkit
已弃用,您可以尝试PySide2
从头开始构建,启用CMakeLists.txt文件中的模块。