Python PyQt5 无法导入名称“QWebView”
Posted
技术标签:
【中文标题】Python PyQt5 无法导入名称“QWebView”【英文标题】:Python PyQt5 cannot import name 'QWebView' 【发布时间】:2018-02-18 03:08:34 【问题描述】:我不断收到此错误:
ImportError: cannot import name 'QWebView'
...对于这段代码:
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWebEngineWidgets import QWebPage
-我在运行 High Sierra 10.13.3 的 Mac 上 -我安装了 Python 3.6.4 - 安装了 PyQt5(做了几次,包括使用 HomeBrew)
我很确定一切都安装正确,因为当我运行python3 -m pip install PyQt5
时它告诉我Requirement already satisfied
:
MacBook-Pro-3:~ ericj36$ python3 -m pip install PyQt5
Requirement already satisfied: PyQt5 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
Requirement already satisfied: sip<4.20,>=4.19.4 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (from PyQt5)
当我尝试运行我的代码时得到的完整错误是:
...line 4, in <module>
from PyQt5.QtWebEngineWidgets import QWebView
ImportError: cannot import name 'QWebView'
那么这里会发生什么?我究竟做错了什么? (我是 Python 新手,但不是开发新手。)
任何帮助将不胜感激。
【问题讨论】:
也许你应该在得出毫无根据的结论之前直接read the web engine docs。 【参考方案1】:Qt5 有两种不同的 Web 工具包:基于 WebKit 的 QtWebKit 和基于 Chromium 的较新的 QtWebEngine
。
您的导入似乎混淆了这两者。 QWebPage
和 QWebView
是 QtWebKit
的一部分,而不是 QtWebEngine
的一部分,QWebEngineView
和 QWebEnginePage
。
所以你可以选择任何一个
WebEngine:
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from PyQt5.QtWebEngineWidgets import QWebEngineView
WebKit:
from PyQt5.QtWebKitWidgets import QWebPage
from PyQt5.QtWebKitWidgets import QWebView
这两者的接口在很大程度上是兼容的,但并不完全相同。
【讨论】:
我选择了 WebEngine 选项 - 有效!谢谢!以上是关于Python PyQt5 无法导入名称“QWebView”的主要内容,如果未能解决你的问题,请参考以下文章
使用 cx_Freeze、PyQt5、Python3 构建的 exe 无法导入 ExtensionLoader_PyQt5_QtWidgets.py 并运行