Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spyder doesn't start - no module named 'PyQt5.QtWebEngineWidgets' #8952

Closed
reisarthur opened this issue Mar 15, 2019 · 26 comments
Closed

Spyder doesn't start - no module named 'PyQt5.QtWebEngineWidgets' #8952

reisarthur opened this issue Mar 15, 2019 · 26 comments

Comments

@reisarthur
Copy link

Problem Description

I recently installed Python and Spyder in my computer, but Spyder doesn't start.

What steps reproduce the problem?

  1. Download and Install Python 3.7.2
  2. Open cmd
  3. pip install spyder
  4. python
  5. import spyder; spyder.app.start.main()

What is the expected output? What do you see instead?

Expected opening the GUI, but error occurred.

Paste Traceback/Error Below (if applicable)

Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 22, in <module>
    from PyQt5.QtWebEngineWidgets import QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python37\lib\site-packages\spyder\app\start.py", line 178, in main
    from spyder.app import mainwindow
  File "C:\Python37\lib\site-packages\spyder\app\mainwindow.py", line 90, in <module>
    from qtpy import QtWebEngineWidgets  # analysis:ignore
  File "C:\Python37\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 26, in <module>
    from PyQt5.QtWebKitWidgets import QWebPage as QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'

Versions

  • Spyder version: 3.3.3
  • Python version: 3.7.2 64-bit
  • Qt version: 5.10.0
  • PyQt version: 5.12
  • Operating System name/version: Windows 10

Dependencies

IPython >=4.0     :  7.2.0 (OK)
cython >=0.21     :  0.29.6 (OK)
jedi >=0.9.0      :  0.13.2 (OK)
matplotlib >=2.0.0:  3.0.2 (OK)
nbconvert >=4.0   :  5.4.0 (OK)
numpy >=1.7       :  1.15.4 (OK)
pandas >=0.13.1   :  0.24.1 (OK)
pycodestyle >=2.3 :  2.5.0 (OK)
pyflakes >=0.6.0  :  2.1.0 (OK)
pygments >=2.0    :  2.3.1 (OK)
pylint >=0.25     :  2.2.2 (OK)
qtconsole >=4.2.0 :  4.4.3 (OK)
rope >=0.9.4      :  0.11.0 (OK)
sphinx >=0.6.6    :  1.8.3 (OK)
sympy >=0.7.3     :  1.3 (OK)

Solution

I managed to fix it, by installing an older version of PyQt5, following this discussion on Stack Overflow: https://stackoverflow.com/questions/51154871/python-3-7-0-no-module-named-pyqt5-qtwebenginewidgets

pip install PyQt5==5.10

@ccordoba12
Copy link
Member

Thanks for reporting. This is a duplicate of issue #8747 and it'll be fixed in our next version (3.3.4).

For now you can run

pip install pyqtwebengine

to get the fix.

@BartBruininks
Copy link

Actually you need to uninstall it first:
pip uninstall pyqtwebengine
pip install pyqtwebengine

This solved it for me.

@richlysakowski
Copy link

I tried both approaches above:

Actually you need to uninstall it first: pip uninstall pyqtwebengine pip install pyqtwebengine

But I still get the same errors. This happens with ALL of my environments, base and 2 other different virtual environments I have tried. It seems to be a bad system-wide reference.

Traceback (most recent call last):
  File "c:\ProgramData\Anaconda3\envs\quantecon\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 22, in <module>
    from PyQt5.QtWebEngineWidgets import QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\ProgramData\Anaconda3\envs\quantecon\Scripts\spyder-script.py", line 10, in <module>
    sys.exit(main())
  File "c:\ProgramData\Anaconda3\envs\quantecon\lib\site-packages\spyder\app\start.py", line 192, in main
    from spyder.app import mainwindow
  File "c:\ProgramData\Anaconda3\envs\quantecon\lib\site-packages\spyder\app\mainwindow.py", line 82, in <module>
    from qtpy import QtWebEngineWidgets  # analysis:ignore
  File "c:\ProgramData\Anaconda3\envs\quantecon\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 26, in <module>
    from PyQt5.QtWebKitWidgets import QWebPage as QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'```

I need HELP with this one !!   I don't want to reinstall Anaconda and re-build 6 or 7 different environments; that is too time consuming !!! 

I am running the following environment right now:

(quantecon) c:\ProgramData\Anaconda3\envs\quantecon\Scripts>conda list
# packages in environment at C:\ProgramData\Anaconda3\envs\quantecon:
#
# Name                    Version                   Build  Channel
alabaster                 0.7.12                     py_0    conda-forge
arachnado                 0.2                      pypi_0    pypi
argh                      0.26.2                py37_1001    conda-forge
asn1crypto                0.24.0                   pypi_0    pypi
astroid                   2.2.5                    py37_0    conda-forge
atomicwrites              1.3.0                      py_0    conda-forge
attrs                     19.1.0                     py_0    conda-forge
automat                   0.7.0                    pypi_0    pypi
autopep8                  1.4.4                      py_0    conda-forge
babel                     2.7.0                      py_0    conda-forge
backcall                  0.1.0                      py_0    conda-forge
blas                      1.0                         mkl
bleach                    3.1.0                      py_0    conda-forge
ca-certificates           2019.9.11            hecc5488_0    conda-forge
certifi                   2019.6.16                py37_1    conda-forge
cffi                      1.12.3           py37hb32ad35_0    conda-forge
chardet                   3.0.4                    pypi_0    pypi
cloudpickle               1.2.2                      py_0    conda-forge
colorama                  0.4.1                      py_0    conda-forge
configparser              3.8.1                    pypi_0    pypi
constantly                15.1.0                   pypi_0    pypi
cryptography              2.7              py37hb32ad35_0    conda-forge
cssselect                 1.1.0                    pypi_0    pypi
cycler                    0.10.0                     py_1    conda-forge
decorator                 4.4.0                      py_0    conda-forge
defusedxml                0.5.0                      py_1    conda-forge
diff-match-patch          20181111                   py_0    conda-forge
docopt                    0.6.2                    pypi_0    pypi
docutils                  0.15.2                   py37_0    conda-forge
entrypoints               0.3                   py37_1000    conda-forge
enum34                    1.1.6                    pypi_0    pypi
freetype                  2.10.0               h563cfd7_1    conda-forge
future                    0.17.1                py37_1000    conda-forge

@ccordoba12
Copy link
Member

I tried both approaches above

By using pip to install PyQt5 you basically broke your Anaconda installation, so now you have to reinstall it.

And please stick to the defaults packages (instead of using conda-forge) to see if that helps.

@systems-apatrick
Copy link

pip3 install PyQtWebEngine

@woshichuanqilz
Copy link

I tried both approaches above

By using pip to install PyQt5 you basically broke your Anaconda installation, so now you have to reinstall it.

And please stick to the defaults packages (instead of using conda-forge) to see if that helps.

I just download the python 3.8 and pip install pyqt5 and PyQtWebEngine still get this issue how to solve it?

@odinsbane
Copy link

Is the issue related to this: https://stackoverflow.com/questions/37876987/cannot-import-qtwebkitwidgets-in-pyqt5 which would mean the version of pyqt5 getting installed is too new?

It seems like everytime I try to use spyder from a conda environment I get this error and I have to recreate the environment and install a specific version for spyder to work.

@DurgaPrasadMyWay
Copy link

Problem Description

I recently installed Python and Spyder in my computer, but Spyder doesn't start.

What steps reproduce the problem?

1. Download and Install Python 3.7.2

2. Open cmd

3. `pip install spyder`

4. `python`

5. `import spyder; spyder.app.start.main()`

What is the expected output? What do you see instead?

Expected opening the GUI, but error occurred.

Paste Traceback/Error Below (if applicable)

Traceback (most recent call last):
  File "C:\Python37\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 22, in <module>
    from PyQt5.QtWebEngineWidgets import QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebEngineWidgets'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python37\lib\site-packages\spyder\app\start.py", line 178, in main
    from spyder.app import mainwindow
  File "C:\Python37\lib\site-packages\spyder\app\mainwindow.py", line 90, in <module>
    from qtpy import QtWebEngineWidgets  # analysis:ignore
  File "C:\Python37\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 26, in <module>
    from PyQt5.QtWebKitWidgets import QWebPage as QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'

Versions

* Spyder version: 3.3.3

* Python version: 3.7.2 64-bit

* Qt version: 5.10.0

* PyQt version: 5.12

* Operating System name/version: Windows 10

Dependencies

IPython >=4.0     :  7.2.0 (OK)
cython >=0.21     :  0.29.6 (OK)
jedi >=0.9.0      :  0.13.2 (OK)
matplotlib >=2.0.0:  3.0.2 (OK)
nbconvert >=4.0   :  5.4.0 (OK)
numpy >=1.7       :  1.15.4 (OK)
pandas >=0.13.1   :  0.24.1 (OK)
pycodestyle >=2.3 :  2.5.0 (OK)
pyflakes >=0.6.0  :  2.1.0 (OK)
pygments >=2.0    :  2.3.1 (OK)
pylint >=0.25     :  2.2.2 (OK)
qtconsole >=4.2.0 :  4.4.3 (OK)
rope >=0.9.4      :  0.11.0 (OK)
sphinx >=0.6.6    :  1.8.3 (OK)
sympy >=0.7.3     :  1.3 (OK)

Solution

I managed to fix it, by installing an older version of PyQt5, following this discussion on Stack Overflow: https://stackoverflow.com/questions/51154871/python-3-7-0-no-module-named-pyqt5-qtwebenginewidgets

pip install PyQt5==5.10

This worked for me. Ubuntu 19.10 x86_64

@mvpel
Copy link

mvpel commented Apr 6, 2020

I got past the first couple of potholes by installing as follows in my Anaconda 2020.02 base environment with Spyder v4.0.1 and Python 3.7.6:

pip install PyQt5==5.12.1 pyqtwebengine==5.12.1

I used 5.12.1 because of requisites for PyQt5<5.13 and pqtwebengine<5.13 reported on my attempt to install the latest version. This brought me to the following error message:

(base) Singularity> spyder
Traceback (most recent call last):
File "/usr/local/anaconda3/lib/python3.7/site-packages/qtpy/init.py", line 204, in
from PySide import version as PYSIDE_VERSION # analysis:ignore
ModuleNotFoundError: No module named 'PySide'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/anaconda3/bin/spyder", line 11, in
sys.exit(main())
File "/usr/local/anaconda3/lib/python3.7/site-packages/spyder/app/start.py", line 201, in main
from spyder.app import mainwindow
File "/usr/local/anaconda3/lib/python3.7/site-packages/spyder/app/mainwindow.py", line 52, in
requirements.check_qt()
File "/usr/local/anaconda3/lib/python3.7/site-packages/spyder/requirements.py", line 41, in check_qt
import qtpy
File "/usr/local/anaconda3/lib/python3.7/site-packages/qtpy/init.py", line 210, in
raise PythonQtError('No Qt bindings could be found')
qtpy.PythonQtError: No Qt bindings could be found

At line 210, we have the following code:

if API in PYSIDE_API:
    try:
        from PySide import __version__ as PYSIDE_VERSION  # analysis:ignore
        from PySide.QtCore import __version__ as QT_VERSION  # analysis:ignore
        PYQT_VERSION = None
        PYQT5 = PYSIDE2 = False
        PYSIDE = True
    except ImportError:
        raise PythonQtError('No Qt bindings could be found')

The PySide 1.2.4 module is not compatible with Python version 3.7 (only up to 3.4), and installing PySide2 5.12.1 module does not resolve the binding issue, presumably because it would have to import PySide2, not PySide.

@gussmith
Copy link

@ccordoba12

I tried both approaches above

By using pip to install PyQt5 you basically broke your Anaconda installation, so now you have to reinstall it.

And please stick to the defaults packages (instead of using conda-forge) to see if that helps.

Thus, what is the installation to follow with conda?
Only pip installation is provided, yet I cannot seem to find a conda install for PyQTWebEngine.
Please advise.Thank you!

@JyotirmaySahu
Copy link

JyotirmaySahu commented Aug 6, 2020

First uninstall both PyQt5 and pyqtwebengine
pip uninstall PyQt5
pip uninstall pyqtwebengine

then install both
pip install PyQt5==5.12.1 pyqtwebengine==5.12.1

@JyotirmaySahu
Copy link

@ccordoba12

I tried both approaches above

By using pip to install PyQt5 you basically broke your Anaconda installation, so now you have to reinstall it.
And please stick to the defaults packages (instead of using conda-forge) to see if that helps.

Thus, what is the installation to follow with conda?
Only pip installation is provided, yet I cannot seem to find a conda install for PyQTWebEngine.
Please advise.Thank you!

First uninstall both PyQt5 and pyqtwebengine
pip uninstall PyQt5
pip uninstall pyqtwebengine
then install both
pip install PyQt5==5.12.1 pyqtwebengine==5.12.1

@mluerig
Copy link

mluerig commented May 13, 2021

I keep having the same issue on WSL2 with latest anaconda3, a fresh environment, and the latest spyder version. when I follow the suggested pip uninstall pyqtwebengine pip install pyqtwebengine I get this:

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
spyder 5.0.2 requires pyqt5<5.13, but you have pyqt5 5.15.4 which is incompatible.
spyder 5.0.2 requires pyqtwebengine<5.13, but you have pyqtwebengine 5.15.4 which is incompatible.

Based on this error msg I tried pip uninstall pyqt5 pip install pyqt5==5.12 pyqtwebengine==5.12, which again gives me ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'.

Any suggestions?

@paraschakis
Copy link

Same here, a very annoying bug. Installing older versions of PyQt5 doesn't help either.

@withover
Copy link

withover commented Feb 5, 2022

pip uninstall PyQt5
pip uninstall pyqtwebengine

pip install PyQt5==5.12.1 pyqtwebengine==5.12.1

I tries above things. But I faild. and I see the next error.

Traceback (most recent call last):
File "/home/withover/anaconda3/lib/python3.9/site-packages/qtpy/QtWebEngineWidgets.py", line 22, in
from PyQt5.QtWebEngineWidgets import QWebEnginePage
ImportError: libXcursor.so.1: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/withover/anaconda3/bin/spyder", line 11, in
sys.exit(main())
File "/home/withover/anaconda3/lib/python3.9/site-packages/spyder/app/start.py", line 233, in main
from spyder.app import mainwindow
File "/home/withover/anaconda3/lib/python3.9/site-packages/spyder/app/mainwindow.py", line 59, in
from qtpy import QtWebEngineWidgets # analysis:ignore
File "/home/withover/anaconda3/lib/python3.9/site-packages/qtpy/QtWebEngineWidgets.py", line 26, in
from PyQt5.QtWebKitWidgets import QWebPage as QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'

@jyk4100
Copy link

jyk4100 commented Feb 15, 2022

@jyk4100
Copy link

jyk4100 commented Feb 15, 2022

I don't have issue with my conda based env but I have for some application I have to install from pypi. Has anyone managed to fix this through pip install?

@elephaint

This comment was marked as resolved.

@mjafory
Copy link

mjafory commented Mar 15, 2022

pip3 install PyQtWebEngine

Thank you! It works to me

@som-dubey
Copy link

First uninstall both PyQt5 and pyqtwebengine pip uninstall PyQt5 pip uninstall pyqtwebengine then install both pip install PyQt5==5.12.3 pyqtwebengine==5.12.1

This solved the issue for spyder 5.2.2

@kchoX14
Copy link

kchoX14 commented Aug 12, 2022

My system:

conda: v4.13.0
Python: v3.9.12 from conda.
Linux: Ubuntu 18.04 LTS x86_64
pip: v22.2.2
virtualenv: 20.16.2 using conda

First uninstall both PyQt5 and pyqtwebengine pip uninstall PyQt5 pip uninstall pyqtwebengine then install both pip install PyQt5==5.12.3 pyqtwebengine==5.12.1

This solved the issue for spyder 5.2.2

@ccordoba12 @systems-apatrick @JyotirmaySahu @jyk4100

Issue & (temporary) fix:

Yes. I had all the aforementioned troubles when I installed (in my virtual environment) the latest spyder (v5.3.2) with pip, but not the stable version that is also the highest permitted by conda (to date). I have the same spyder installed on my root, but with conda. As of today (on Linux), spyder v5.2.2 with pip install fetches PyQtWebEngine-5.12.1-5.12.10 and PyQt5-5.12.3-5.12.10. Spyder then launches without error. One can ignore the auto-start pop-up to update to v5.3.2.

Short synopsis:

The problem seems to be with pip-installing the latest spyder and/or pyqt5/pyqtwebengine. This needs fixing. Otherwise, using latest versions independent of conda won't be feasible. For now, I'd recommend sticking to the version permitted by conda (just search with conda search spyder, and install the latest allowed in that list with pip over your environment instead specific to your Python installation.)

@Kryzern
Copy link

Kryzern commented Sep 5, 2022

I had the same problem except this time with spyder 5.2.2. After some tinkering I ended up with the identical command and now it works!

This was all because the input() command wasn't working on an old version.. :)

@jayaish1
Copy link

jayaish1 commented Nov 9, 2022

I was having similar problems while running spyder as GUI from Windows WSL.
Changing the pyqt5 versions/install/uninstall (pip install pyqt5=x.xx) and installing the libraries with following code worked for me.

sudo apt-get install libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libxtst-dev libxss-dev libdbus-1-dev libevent-dev libfontconfig1-dev libcap-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libegl1-mesa-dev gperf bison nodejs

refer to https://stackoverflow.com/questions/66607640/unable-to-import-qtwebenginepage-from-pyqt5-on-aws-linux

@kinglionsz
Copy link

I had the same problem while running spyder as GUI from Windows WSL.

pip list

PyQt5 5.15.7
PyQt5-Qt5 5.15.2
PyQt5-sip 12.11.0
PyQtWebEngine 5.15.6

Spyder doesn't start - no module named 'PyQt5.QtWebEngineWidgets'

Changing the pyqt5 versions by /uninstall new version /install old version:

pip uninstall PyQt5
Found existing installation: PyQt5 5.15.7
Uninstalling PyQt5-5.15.7:
Successfully uninstalled PyQt5-5.15.7

pip uninstall PyQtWebEngine
Found existing installation: PyQtWebEngine 5.15.6
Not uninstalling pyqtwebengine at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'PyQtWebEngine'. No files were found to uninstall.

pip install pyqt5==5.12.3
Installing collected packages: pyqt5
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
pyqtwebengine 5.15.6 requires PyQt5>=5.15.4, but you have pyqt5 5.12.3 which is incompatible.
Successfully installed pyqt5-5.12.3

pip install sip==5.0.0
Successfully installed sip-5.0.0

pip install pyqt5==5.12.3 tools
Successfully installed pytils-0.4.1 tools-0.1.9

pip install PyQtWebEngine==5.12.3
Successfully installed PyQtWebEngine-5.12.1

pip check
No broken requirements found.

pip list
PyQt5 5.12.3
PyQt5-Qt5 5.15.2
PyQt5-sip 12.11.0
PyQtWebEngine 5.12.1

Python 3.10.8 64-bit | Qt 5.12.10 | PyQt5 5.12.3 | Linux 5.15.68.1-microsoft-standard-WSL2 |
Spyder 5.3.3

==================================

and now spyder run good.

@schmoelder
Copy link

Same here on Ubuntu 22.04

@winkmal
Copy link

winkmal commented Jan 5, 2024

Same here on Ubuntu 22.04

On Linux Mint 21.2 (based on Ubuntu 22.04), I had to install the following additional packages: attrs, entrypoints
Now it seems to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests