【问题标题】:Python PyQt5 cannot import name 'QWebView'Python PyQt5 无法导入名称“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 新手,但不是开发新手。)

任何帮助将不胜感激。

【问题讨论】:

标签: python pyqt5


【解决方案1】:

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

您的导入似乎混淆了这两者。 QWebPageQWebViewQtWebKit 的一部分,而不是 QtWebEngine 的一部分,QWebEngineViewQWebEnginePage

所以你可以选择任何一个

  • WebEngine:

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

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

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

【讨论】:

  • 我选择了 WebEngine 选项 - 有效!谢谢!
猜你喜欢
  • 2015-05-29
  • 2019-09-27
  • 2021-01-23
  • 2015-03-01
  • 2021-01-01
  • 2016-10-08
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多