使用py2exe和pyttsx将Python脚本编译为可执行文件时出现编译错误

4

我有一个用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个回答

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)。如果您想规避这个问题,可能需要尝试更高级的解决方案。

0

你应该尝试使用 pyttsx3 并使用你的系统的文本到语音 API,如 Windows 的 SAPI 5 运行。它更快且更现代。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接