我一直收到这个错误:
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新手 - 但不是开发人员。)
非常感谢任何帮助。
答案 0 :(得分:3)
Qt5有两种不同的Web工具包:基于WebKit的QtWebKit和基于Chromium的较新QtWebEngine
。
你的进口似乎混淆了这两者。 QWebPage
和QWebView
属于QtWebKit
,而不属于QtWebEngine
,QWebEngineView
和QWebEnginePage
。
所以你可以选择
from PyQt5.QtWebEngineWidgets import QWebEnginePage
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtWebKitWidgets import QWebPage
from PyQt5.QtWebKitWidgets import QWebView
这两者的接口在很大程度上是兼容的,但并不完全相同。