Ошибка компиляции 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 в моем случае) на обеих машинах. Если вы хотите обойти это, вам, вероятно, нужно попробовать что-то более продвинутое.