我是初学者,在使用python为音频控件安装pycaw之后,在为pycaw设置基本的初始化代码时,我会遇到以下错误:
Traceback (most recent call last):
File "c:\Users\...\volumeControl.py", line 7, in <module>
from comtypes import CLSCTX_ALL
File "C:\...\env\lib\site-packages\comtypes\__init__.py", line 375
except COMError, err:
^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized
基本初始化:-
from ctypes import cast, POINTER
from comtypes import CLSCTX_ALL
from pycaw.pycaw import AudioUtilities, IAudioEndpointVolume
devices = AudioUtilities.GetSpeakers()
interface = devices.Activate(
IAudioEndpointVolume._iid_, CLSCTX_ALL, None)
volume = cast(interface, POINTER(IAudioEndpointVolume))
我试着在网上搜索这个,但是找不到一个修复方法。
我还尝试进入虚拟env中的模块文件,并在COMError,err周围加上括号。
但代码中的其他行也出现了同样的错误,
还尝试重新安装pycaw,并尝试安装不同版本的pycaw几次,但没有修复。
如何修复此错误?
发布于 2022-01-27 14:09:57
经过一段时间的搜索,我发现comtype使用一个工具来兼容python 2和3,这在新版本中不再适用。我不得不降级两个软件包并重新安装comtype:
pip install setuptools==57.0.0 --force-reinstall
pip install wheel==0.36.2 --force-reinstall
pip uninstall comtypes
pip install --no-cache-dir comtypes
发布于 2022-09-27 09:18:29
我刚刚弄明白了神秘的"SyntaxError: multiple exception types must be parenthesized"
信息是什么意思。它试图告诉您的是,在您使用的Python的新版本中,这个语法不再有效:
except COMError, err:
相反,您应该使用以下语法:
except COMError(err):
https://stackoverflow.com/questions/70648404
复制相似问题