Search code examples
pythonpyqt5spyder

Can't start spyder because of PyQt5.QtWebKitWidgets


I have a problem with spyder.

I just installed on this laptop Python 3.7 and Spyder, as I did on many others. However this time, it doesn't work.

I installed Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32 with the installer. I changed the path to a custom path: C:\Python\Python37, I added the precompile library and I added the path to the environment. The laptop was rebooted at that point.

Then I updated pip:

py -3.7 -m pip install --upgrade pip

And then I installed spyder:

py -3.7 -m pip install spyder

I then try to launch spyder with the file:

C:\Python\Pythno37\Lib\site-packages\spyder\app\start.py

I get the error:

ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'

PyQt5 is installed with version 5.12.

No clue why it doesn't work...

EDIT: The full error message:

Error msg

It sugggest that the problem comes from qtpy. However, the corresponding file imports:

from . import PYQT5,PYSIDE2, PYQT4, PYSIDE, PythonQtError


# To test if we are using WebEngine or WebKit
WEBENGINE = True


if PYQT5:
    try:
        from PyQt5.QtWebEngineWidgets import QWebEnginePage
        from PyQt5.QtWebEngineWidgets import QWebEngineView
        from PyQt5.QtWebEngineWidgets import QWebEngineSettings
    except ImportError:
        from PyQt5.QtWebKitWidgets import QWebPage as QWebEnginePage
        from PyQt5.QtWebKitWidgets import QWebView as QWebEngineView
        from PyQt5.QtWebKit import QWebSettings as QWebEngineSettings
        WEBENGINE = False

The PyQt5.QtWebEngnieWidgets is correctly used.


Solution

  • I swapped Pyqt5 version from 5.12 to 5.11.2 with:

    py -m pip install pyqt5==5.11.2
    

    And now it works...