Python PyQt5无法导入名称'QWebView'

时间:2018-02-18 03:08:34

标签: python pyqt5

我一直收到这个错误:

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新手 - 但不是开发人员。)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

Qt5有两种不同的Web工具包:基于WebKit的QtWebKit和基于Chromium的较新QtWebEngine

你的进口似乎混淆了这两者。 QWebPageQWebView属于QtWebKit,而不属于QtWebEngineQWebEngineViewQWebEnginePage

所以你可以选择

  • WebEngine

    from PyQt5.QtWebEngineWidgets import QWebEnginePage
    from PyQt5.QtWebEngineWidgets import QWebEngineView
    
  • WebKit

    from PyQt5.QtWebKitWidgets import QWebPage
    from PyQt5.QtWebKitWidgets import QWebView
    

这两者的接口在很大程度上是兼容的,但并不完全相同。