【问题标题】:Compiling error for python script to exe using py2exe and pyttsx使用 py2exe 和 pyttsx 将 python 脚本编译为 exe 的错误
【发布时间】:2014-06-08 21:52:51
【问题描述】:

我有一个我制作的 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


    【解决方案1】:

    是的 - 我成功了!

    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

    【讨论】:

      【解决方案2】:

      您应该尝试使用 pyttsx3 运行,并使用系统的文本到语音 api,例如 Windows 的 sapi 5。它的速度更快,更新更早。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-01
        • 2014-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多