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

Mac上运行pyttsx3时出现KeyError和NameError问题求助

Mac上运行pyttsx3时出现KeyError和NameError问题求助

Hey,我之前在Ventura系统上也遇到过一模一样的问题,给你几个亲测有效的解决办法:

首先得明确你的报错根源:

  • 最底层的问题是NameError: name 'objc' is not defined,这是因为pyttsx3在Mac上用的nsss驱动依赖pyobjc模块,但这个模块没安装或者版本和Ventura不兼容;
  • 前面的KeyError: None是因为找不到可用的语音驱动,本质也是依赖缺失导致的。

方案一:补全兼容的依赖包

先卸载可能冲突的旧包,再重新安装兼容版本:

  1. 卸载现有相关包:
pip uninstall -y pyttsx3 pyobjc-core pyobjc-framework-Cocoa
  1. 重新安装适配Ventura的版本,推荐指定pyobjc的版本(9.0.1亲测在Ventura上稳定):
pip install pyobjc-core==9.0.1 pyobjc-framework-Cocoa==9.0.1 pyttsx3
  1. 测试你的代码,也可以试试明确指定驱动:
import pyttsx3 as pt

engine = pt.init(driverName='nsss') # 明确指定Mac的nsss驱动
engine.say("hi this is python")
engine.runAndWait()

方案二:用系统原生命令替代(快速解决)

如果还是搞不定pyttsx3的依赖,可以直接调用Mac自带的say命令,完全不用第三方库:

import subprocess
subprocess.run(['say', 'hi this is python'])

这个是系统原生的语音工具,不会有任何兼容问题,适合快速实现需求。

为什么你克隆改代码没用?

因为这个问题不是pyttsx3代码本身的小问题,而是依赖库和Ventura系统的兼容性问题,单纯改代码没法补全缺失的objc模块依赖,所以得从安装依赖入手。

备注:内容来源于stack exchange,提问作者Archit Anant

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 12:13:00