[使用py2exe和pyttsx将python脚本编译为exe的编译错误

问题描述 投票:4回答:2

我有一个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'
            ]
        }
    }
)
python py2exe
2个回答
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
投票

[您应尝试使用pyttsx3运行,并使用系统的文本语音API(例如Windows的api 5)。它更快,更新。

© www.soinside.com 2019 - 2024. All rights reserved.