Ошибка компиляции pyttsx в окнах с использованием py2xe

Я написал приложение python с использованием библиотеки pyttsx. его работа без каких-либо проблем из файла tt.py. Я скомпилировал этот файл tt.py, используя модуль py2exe. после компиляции я попытался запустить файл .exe. то его ошибка показывает, как данное изображение enter image description here

мой файл setup.py, подобный этому

from distutils.core import setup
import py2exe, sys, os
#includes =['drivers','drivers.sapi5'] #this tried. but making error 
sys.argv.append('py2exe')

setup(
    options = {'py2exe': {}},
    console=['tt.py'],

)

i, скомпилированный с помощью этой команды

python setup.py py2exe install

Я импортирую следующие модули в tt.py

import pyttsx
import pyttsx.drivers.sapi5
import win32com
from time import sleep

Как я могу это исправить?

Ответ 1

Глядя на ваш импорт, вам нужно добавить import time

Если ваша проблема заключается в использовании cx freeze, она похожа на py exe и использует такой код.

Также может быть хорошей идеей перейти на python 3.3. Это может решить некоторые проблемы.

Это может помочь в статье о вашей ошибке. https://mail.python.org/pipermail/python-win32/2006-January/004184.html

import pyttsx
import pyttsx.drivers.sapi5
import win32com
from time import sleep
import sys
from cx_Freeze import setup, Executable

setup(
    name = "tt.py",
    version = "0.1",
    description = "your discription",
    executables = [Executable("The file name", base = "Win32GUI")])

здесь ссылка на cx freeze http://cx-freeze.sourceforge.net/

Здесь учебник о том, как его использовать http://cx-freeze.readthedocs.org/en/latest/overview.html

Ответ 2

Я попытался cx_Freeze на пару минут, но когда это не сработало, я попытался еще немного с py2exe и получил это:

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=['tt.py'], options = {'py2exe': py2exe_options})

Обратите внимание, что это требует, чтобы вы запускали ту же версию (v5.4 в моем случае) на обеих машинах. Если вы хотите обойти это, вам, вероятно, нужно попробовать что-то более продвинутое.