【问题标题】:Cannot import QtWebKitWidgets in PyQt5无法在 PyQt5 中导入 QtWebKitWidgets
【发布时间】:2016-10-19 00:30:42
【问题描述】:

我最近使用 Windows 32 位安装程序将 PyQt5 从 5.5.1 升级到 5.6.0:https://www.riverbankcomputing.com/software/pyqt/download5。我还将我的 python 从 3.4 升级到 3.5。

当我使用最新版本运行我的旧代码(以前可以工作)时,我得到一个异常:

    from PyQt5.QtWebKitWidgets import *
ImportError: No module named 'PyQt5.QtWebKitWidgets'

我在 python 中的所有 QT 调用都是连续发生的(我知道我不应该导入 * 但我认为这不是问题所在):

        from PyQt5.QtCore import *
        from PyQt5.QtGui import *
        from PyQt5.QtWidgets import *
        from PyQt5.QtWebKitWidgets import *

所以 QtCore、QtGui 和 QtWidgets 导入都可以。

此外,当我搜索 QtWebKitWidgets 的源代码时,会出现对该模块的多个引用。

最后我的 python 路径看起来像:

C:\PYTHON35;C:\PYTHON35\DLLs;C:\PYTHON35\LIB;C:\PYTHON35\LIB\LIB-TK;

和环境路径:

C:\Python35\Lib\site-packages\PyQt5;C:\Python35;C:\Python35\Lib;C:\Python35\Lib\site-packages;C:\Python35\Scripts ....

【问题讨论】:

    标签: python qt pyqt5


    【解决方案1】:

    QtWebKit 在 Qt 5.5 和 removed in 5.6 的上游被弃用。

    您可能想切换到PyQt5.QtWebEngineWidgets.QWebEngineView

    对于PyQt5.QtWebKitWidgets.QWebView的基本使用,可以在源代码中简单地更新为使用PyQt5.QtWebEngineWidgets.QWebEngineView,但新组件可能存在一些差异,需要进一步调整。

    【讨论】:

    • 非常感谢,我不知道它已被弃用。这可能是一个不同的问题,但我尝试用 QtWebEngineWidgets 替换导入,但又遇到了另一个错误:from PyQt5.QtWebEngineWidgets import * ImportError: DLL load failed: The operating system cannot run %1.我最初猜测的是不同的位类型......但我确实运行了正确的安装程序(64 位系统上的 python 和 qt 32 位)。
    • 我认为您可以针对此错误提出一个新问题 :) 或查看类似 stackoverflow.com/questions/22800768/… 的答案
    • 我通过安装 PyQtWebEngine 使其工作:stackoverflow.com/questions/33108133/…
    • 如果我想降级 pyinstaller 我应该使用哪个版本?我问是因为 msys mingw64 不支持 PyQtWebEngine
    【解决方案2】:

    我试图运行 qutebrowser,它有同样的错误,答案很简单,包改变了。 您有两种解决方案:

    1)

    pip install PyQtWebEngine
    

    2)

    pip install PyQt5==5.11.3
    

    希望这对未来的任何问题有所帮助

    【讨论】:

      【解决方案3】:

      在 PyQt5 中,“QtWebKitWidgets”弃用。我只是替换这一行

      from PyQt5.QtWebKitWidgets import QWebView, QWebPage
      from PyQt5.QtWebKit import QWebSettings
      

      使用此代码:

      from PyQt5.QtWebEngineWidgets import QWebEngineView as QWebView,QWebEnginePage as QWebPage
      from PyQt5.QtWebEngineWidgets import QWebEngineSettings as QWebSettings
      

      【讨论】:

        【解决方案4】:

        在 PyQt5 中 “QtWebKitWidgets” 不再可用。相反,它被替换为 "QtWebEngineWidgets"。因此您必须在代码中进行此更改。

        欲了解更多信息:http://doc.qt.io/qt-5/qtwebenginewidgets-qtwebkitportingguide.html

        【讨论】:

          【解决方案5】:

          如果你真的想使用PyQt5.QtWebKitWidgets,你可以从命令行运行它:

          pip install PyQtWebKit
          

          让它做它该做的事。

          【讨论】:

          • ERROR: Could not find a version that satisfies the requirement PyQtWebKit ERROR: No matching distribution found for PyQtWebKit
          猜你喜欢
          • 2021-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-17
          • 1970-01-01
          • 1970-01-01
          • 2018-12-08
          相关资源
          最近更新 更多