MacOS下pyttsx3初始化失败问题求助
解决pyttsx3在Python3.12下初始化nsss驱动失败的问题
问题核心
你的报错根源是Python3.12与nsss驱动依赖的PyObjC库存在兼容性冲突,从报错信息里的objc.internal_error能看出,PyObjC在3.12环境中加载Foundation框架时触发了内部断言错误,导致nsss驱动无法正常导入。
解决方案
方案1:降级Python到3.11版本
Python3.12属于较新的大版本,很多第三方库的适配还没跟上,降级到3.11可以直接规避这个问题:
- 通过pyenv工具或直接下载Python3.11安装包完成版本切换
- 在3.11环境下重新安装pyttsx3:
pip install pyttsx3 - 运行原有代码即可正常初始化驱动
方案2:不手动指定驱动,让pyttsx3自动适配
修改代码,去掉init方法里的"nsss"参数,让库自动检测系统可用驱动:
import pyttsx3 engine = pyttsx3.init() # 自动选择适配当前系统的驱动 engine.say("Hello World") engine.runAndWait()
Mac环境下依然会调用nsss驱动,但能绕过手动指定触发的加载异常。
方案3:使用系统自带的Python环境
Mac自带的Python版本(通常是3.9或3.10)对PyObjC的支持更稳定:
- 终端中直接用
python3(或python,依系统配置)运行脚本 - 若需安装pyttsx3,执行
pip3 install pyttsx3
内容的提问来源于stack exchange,提问作者Drew P
相关产品推荐
相关产品推荐

