Cannot import QtWebKitWidgets in PyQt5

Posted on

Question :

Cannot import QtWebKitWidgets in PyQt5

I’ve recently upgraded PyQt5 from 5.5.1 to 5.6.0 using the Windows 32-bit installer here: I’ve also upgraded my python from 3.4 to 3.5.

When I run my old code (which used to work) with the latest version I get an exception:

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

All of my QT calls in my python occur consecutively and are (and I know I shouldn’t be importing * but that’s beside the issue here I think):

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

So the QtCore, QtGui and QtWidgets imports are all OK.

Also, when I search the source for QtWebKitWidgets there appears several references to this module.

Finally my python path looks like:


and environment path:

C:Python35Libsite-packagesPyQt5;C:Python35;C:Python35Lib;C:Python35Libsite-packages;C:Python35Scripts ....

Answer #1:

QtWebKit got deprecated upstream in Qt 5.5 and removed in 5.6.

You may want to switch to PyQt5.QtWebEngineWidgets :

This supercedes the QtWebKit module and provides better and up-to-date
support for HTML, CSS and JavaScript features

Answered By: Peter Bingham

Answer #2:

I was trying to run qutebrowser and it had the same error, the answer is simple, the packages changed.
You have two solutions:


pip install PyQtWebEngine


pip install PyQt5==5.11.3

Hope this helps any future problems

Answered By: IAmInPLS

Answer #3:

In PyQt5 “QtWebKitWidgets” is Deprecated. I just replace this line

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

With this code:

from PyQt5.QtWebEngineWidgets import QWebEngineView as QWebView,QWebEnginePage as QWebPage
from PyQt5.QtWebEngineWidgets import QWebEngineSettings as QWebSettings
Answered By: Spounka

Answer #4:

In PyQt5 “QtWebKitWidgets” is no longer available. Instead it is replaced with “QtWebEngineWidgets”. So you have to make this change in your code.

For more information:

Answered By: Istiyak

Answer #5:

If you really want to use PyQt5.QtWebKitWidgets, you could run this from the command line:

pip install PyQtWebKit

and let it do what it does.

Answered By: SilverRayX

Leave a Reply

Your email address will not be published.