我有一个python脚本,它使用pyttsx进行文本到语音输出。每当我使用py2exe将其转换为exe并尝试运行exe时,我会收到以下错误:
Traceback (most recent call last):
File "main.py", line 8, in <module>
File "pyttsx\__init__.pyc", line 39, in init
File "pyttsx\engine.pyc", line 45, in __init__
File "pyttsx\driver.pyc", line 66, in __init__
File "pyttsx\drivers\sapi5.pyc", line 37, in buildDriver
File "pyttsx\drivers\sapi5.pyc", line 46, in __init__
File "win32com\client\__init__.pyc", line 317, in WithEv
AttributeError: 'NoneType' object has no attribute 'CLSID'
以下是我的setup.py:
的副本from distutils.core import setup
import py2exe
setup(
console=['main.py'],
options = {
"py2exe":{
"includes":[
'pyttsx.drivers.sapi5'
]
}
}
)
答案 0 :(得分:3)
YEY - 我搞定了!
from distutils.core import setup
import py2exe
py2exe_options = { 'includes': ['pyttsx.drivers.sapi5', 'win32com.gen_py.C866CA3A-32F7-11D2-9602-00C04F8EE628x0x5x4'],
'typelibs': [('{C866CA3A-32F7-11D2-9602-00C04F8EE628}', 0, 5, 4)] }
setup(console=['main.py'], options = {'py2exe': py2exe_options})
请注意,这需要您在两台计算机上运行相同的版本(在我的情况下为v5.4)。如果你想绕过,你可能需要尝试more advanced。
答案 1 :(得分:0)
您应该尝试在pyttsx3上运行,并使用系统的文本语音API(例如Windows的api 5)。它更快,更新。