使用py2exe和pyttsx编译python脚本到exe的错误

时间:2014-06-08 21:52:51

标签: python py2exe

我有一个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'
            ]
        }
    }
)

2 个答案:

答案 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)。它更快,更新。