ImportError: cannot import name pyqtSignal?

ImportError: cannot import name pyqtSignal?

问题背景:这是我之前正在处理并尝试启动 GUI 的 PyQt 项目。我已经使用 Python 2.7 设置了一个 Anaconda 环境并使用了 PyQt4。错误是:-

File "gui/gui.py", line 26, in <module> from qtpy.QtCore import (Qt, QFileSystemWatcher, QSettings, pyqtSignal) ImportError: cannot import name pyqtSignal

代码:-

enter #import qt
from qtpy import QtCore, QtWidgets, QtGui, PYQT4 #changed from PYQT5
from qtpy.QtCore import (Qt, QFileSystemWatcher, QSettings, pyqtSignal)

即使尽我所能设置环境和其他方面,我也无法查明为什么这个错误仍然在 Mac 上弹出 up.Tried,即使在Ubuntu。有谁知道如何解决这个问题?

您正在使用 qtpy 而不是直接使用 PyQt4。根据 Don't delete QtCore.{pyqtSignal,pyqtSlot,pyqtProperty} · Issue #76 · spyder-ide/qtpy · GitHub,他们故意放弃了 PyQt 特定名称,如 pyqtSignal,而是在导入时将它们重命名为通用名称,如 Signal 以保持统一。他们评论说这些名称遵循 Qt5 的命名方案。

所以你应该

from qtpy.QtCore import Qt, QFileSystemWatcher, QSettings, Signal

并将代码中其他地方的所有 pyqtSignal 重命名为 Signal