由于 PyQt5.QtWebKitWidgets 无法启动 spyder

Mat*_*ieu 5 python spyder pyqt5

我有 spyder 的问题。

我刚刚在这台笔记本电脑上安装了 Python 3.7 和 Spyder,就像我在许多其他笔记本电脑上所做的那样。然而这一次,它不起作用。

我是Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32用安装程序安装的。我将路径更改为自定义路径:C:\Python\Python37,我添加了预编译库并添加了环境的路径。笔记本电脑在那时重新启动。

然后我更新了pip:

py -3.7 -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

然后我安装了spyder:

py -3.7 -m pip install spyder
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用该文件启动 spyder:

C:\Python\Pythno37\Lib\site-packages\spyder\app\start.py
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'
Run Code Online (Sandbox Code Playgroud)

PyQt5 随版本 5.12 一起安装。

不知道为什么它不起作用......

编辑:完整的错误信息:

错误信息

它表明问题来自qtpy. 但是,相应的文件导入:

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
Run Code Online (Sandbox Code Playgroud)

PyQt5.QtWebEngnieWidgets正确使用。

Mat*_*ieu 12

我将 Pyqt5 版本从 5.12 换成了 5.11.2:

py -m pip install pyqt5==5.11.2
Run Code Online (Sandbox Code Playgroud)

现在它起作用了......


Tia*_*ica 7

三天前,我在玩 Python、Mayavi 和 Jupyter Notebooks 来创建可视化。这需要安装 PyQt5。

由于不断出现内存错误,我决定在不使用 virtualenv 的情况下进行测试,并在我的本地环境中安装了所需的要求(这当然没有解决)。

之后,我开始使用 matplotlib 和其他 Python 库创建可视化,但无法从 Anaconda Navigator 启动 Spyder。

这是显示的错误,与您的类似

Traceback (most recent call last):
File "C:\Users\tiago\Anaconda3\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 22, in 
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:\Users\tiago\Anaconda3\Scripts\spyder-script.py", line 10, in 
sys.exit(main())
File "C:\Users\tiago\Anaconda3\lib\site-packages\spyder\app\start.py", line 186, in main
from spyder.app import mainwindow
File "C:\Users\tiago\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 90, in 
from qtpy import QtWebEngineWidgets # analysis:ignore
File "C:\Users\tiago\Anaconda3\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 26, in 
from PyQt5.QtWebKitWidgets import QWebPage as QWebEnginePage
ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'
Run Code Online (Sandbox Code Playgroud)

正确答案在我的情况下不起作用。

这个问题与 PyQt5 安装有关。修复它的方法是卸载它

pip uninstall PyQt5
Run Code Online (Sandbox Code Playgroud)

卸载PyQt5后解决

然后 Spyder 完美启动

Spyder 终于上线了

  • 所以当我遇到这个问题时,我没有使用anaconda。我是通过pip安装spyder的。我注意到,spyder 的最新版本与 pyqt5 的最新版本不兼容,其中模块“QtWebKitWidgets”已更改位置/重命名。我忘了是哪一个了,不过当时git上解决了这个问题。不知道最新版本的spyder是否解决了这个问题。在您的情况下,之前安装的 pyqt5 可能是原因,因此卸载/重新安装成功了。感谢您为将来遇到此问题的用户添加此答案。 (2认同)
  • 令人惊讶的是spyder使用的是pyqt5。Pyqt5是spyder必需的包。我猜你猜这与水蟒的使用有关。也许 anaconda 中的间谍程序有点不同和/或正在使用 pyqt5 的特定安装。 (2认同)