You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行SpeechRecognition代码时PySide2.QtGui无QApplication属性报错

解决speech_recognition代码运行时的PySide2 AttributeError问题

问题背景

使用speech_recognition库的音频识别代码:

import speech_recognition as sr

def recognize():
    r = sr.Recognizer()
    
    with sr.AudioFile("test.wav") as source:
        audio = r.record(source)
    
    print(r.recognize_google(audio))
    
recognize()

首次运行提示缺少PySide2,安装后出现以下错误:

Failed to enable GUI event loop integration for 'qt'
Traceback (most recent call last):
  File "c:\program files\microsoft visual studio\2022\enterprise\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydev_ipython\matplotlibtools.py", line 30, in do_enable_gui
    enable_gui(guiname)
  File "c:\program files\microsoft visual studio\2022\enterprise\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydev_ipython\inputhook.py", line 540, in enable_gui
    return gui_hook(app)
  File "c:\program files\microsoft visual studio\2022\enterprise\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydev_ipython\inputhook.py", line 180, in enable_qt
    self.enable_qt4(app)
  File "c:\program files\microsoft visual studio\2022\enterprise\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydev_ipython\inputhook.py", line 205, in enable_qt4
    app, inputhook_qt4 = create_inputhook_qt4(self, app)
  File "c:\program files\microsoft visual studio\2022\enterprise\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\pydev_ipython\inputhookqt4.py", line 84, in create_inputhook_qt4
    app = QtGui.QApplication([" "])
AttributeError: module 'PySide2.QtGui' has no attribute 'QApplication'
Backend QtAgg is interactive backend. Turning interactive mode on.

解决方案

1. 更换matplotlib后端(最简单有效)

错误源于调试器集成的matplotlib Qt后端适配问题,直接指定非Qt后端即可:
在代码开头添加以下两行:

import matplotlib
matplotlib.use('TkAgg') # 或使用'Agg'(非交互式,适合无GUI环境)

修改后的完整代码:

import matplotlib
matplotlib.use('TkAgg')
import speech_recognition as sr

def recognize():
    r = sr.Recognizer()
    
    with sr.AudioFile("test.wav") as source:
        audio = r.record(source)
    
    print(r.recognize_google(audio))
    
recognize()

2. 用PyQt5替代PySide2

卸载当前PySide2,安装PyQt5:

pip uninstall PySide2 -y
pip install PyQt5

PyQt5的模块结构与旧版适配更好,能避开该属性错误。

3. 命令行直接运行(绕开IDE调试器问题)

该错误仅在VS调试模式下触发,直接用命令行执行代码即可正常运行:

python your_script_name.py

4. 降级PySide2到兼容版本

安装5.12.x版本的PySide2,该版本中QApplication仍保留在QtGui模块的兼容导入:

pip install PySide2==5.12.0

内容的提问来源于stack exchange,提问作者BaRiboD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 09:05:38