Mac用户遇ModuleNotFoundError: No module named 'pyttsx3.drivers.'问题求助
解决Mac上pyttsx3的ModuleNotFoundError问题
错误原因分析
你调用pyttsx3.init('')时传入了空字符串作为驱动名,导致pyttsx3尝试导入不存在的pyttsx3.drivers.模块(末尾多余的点)。另外,Mac系统下pyttsx3依赖pyobjc来调用系统语音合成接口,缺失该依赖也会引发驱动加载问题。
分步解决方案
1. 修正init调用参数
不要传入空字符串,让pyttsx3自动检测Mac系统驱动:
import pyttsx3 engine = pyttsx3.init() # 不传参数,自动适配系统驱动
或者手动指定Mac的驱动标识:
engine = pyttsx3.init('nsss') # nsss是Mac系统语音驱动的官方标识
2. 安装Mac必需的依赖
在终端执行以下命令,安装pyttsx3在Mac上的核心依赖:
pip install pyobjc-core pyobjc-framework-Cocoa
如果使用虚拟环境,先激活环境再执行命令。
3. 重新安装pyttsx3(可选但推荐)
先卸载现有版本,再重新安装以确保依赖完整:
pip uninstall -y pyttsx3 pip install pyttsx3
4. 测试验证
运行以下代码确认问题解决:
import pyttsx3 engine = pyttsx3.init() engine.say("Hello, this is a test on Mac.") engine.runAndWait()
额外注意事项
- 确保你的Python版本(此处为3.11)与pyobjc兼容,pyobjc支持Python 3.7及以上版本。
- 如果使用PyCharm等IDE,确认项目关联的虚拟环境已正确安装所有依赖。
内容的提问来源于stack exchange,提问作者RandomCoder
相关产品推荐
相关产品推荐

