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

升级Windows11后pyttsx3报KeyError:sapi5及pywintypes导入错误如何解决

故障关联判定

该故障和Windows 11系统升级直接相关。Windows 11升级过程中会重置部分系统组件的注册表关联、以及系统级动态链接库(dll)的加载路径,你遇到的pywintypes39.dll缺失属于pywin32组件的依赖问题,而pywin32是pyttsx3调用sapi5接口、以及部分opencv-python依赖的系统交互组件,升级后路径失效会连带影响多个依赖库的运行。

修复步骤

  • 第一步:修复pywin32组件
    首先卸载当前安装的pywin32,再重新安装适配版本,执行命令:
pip uninstall pywin32 -y
pip install pywin32==306

安装完成后执行注册命令:

python C:\Users\subha\AppData\Roaming\Python\Python39\site-packages\pywin32_system32\pywin32_postinstall.py -install

如果使用Python虚拟环境,需将路径替换为虚拟环境目录下对应的pywin32安装路径

  • 第二步:验证pyttsx3运行
    初始化pyttsx3的时候可以省略sapi5参数,Windows下会自动默认调用,修改后的代码参考:
import pyttsx3

engine = pyttsx3.init()
voices = engine.getProperty('voices')
# 先打印所有语音对象确认索引存在,避免索引越界报错
for idx, voice in enumerate(voices):
    print(f"索引{idx}:{voice.id}")
# 确认索引存在后再设置
engine.setProperty('voice', voices[0].id)

def speak(audio):
    engine.say(audio)
    engine.runAndWait()

运行上述代码如果能正常打印语音列表,说明pyttsx3修复完成。

  • 第三步:修复opencv项目
    重新安装对应版本的opencv-python即可:
pip uninstall opencv-python opencv-python-headless -y
pip install opencv-python==4.5.5.62

如果还是报错,检查系统环境变量里的PATH是否包含Python39的安装目录、以及Python39下Scripts目录的路径,Windows 11升级可能会清除部分用户自定义的PATH配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 18:21:02