我有一个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'
]
}
}
)
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。
[您应尝试使用pyttsx3运行,并使用系统的文本语音API(例如Windows的api 5)。它更快,更新。