1.常见错误: ModuleNotFoundError: No module named 'pyttsx3.drivers'
最直接的方式是 import pyttsx3.drivers
2.常见错误: 接下来会报错 ModuleNotFoundError: No module named 'pyttsx3.drivers.sapi5'
和上面一样的方法: import pyttsx3.drivers.sapi5
3.常见错误: 接下来是 pywintypes.com_error: (-2147221008, '尚未调用。', None, None)
这里先是导入 import pythoncom
接着在你用了线程的run里面 加上线程初始化 pythoncom.CoInitialize()
这个的用处是初始化线程
4.常见错误: 最后是pywintypes.com_error: (-2147352573, '找不到成员。', None, None)
然后找到 pyttsx3的目录:修改文件“<python路径>\Lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_win32comgenpy.py”
直接让他不经过下面
import sys
# The win32com fixes aren't needed for Python 3.X
if sys.version_info >= (3, 0):
pass
else:
<以下为原内容>
#-----------------------------------------------------------------------------
# Copyright (c) 2013-2017, PyInstaller Development Team.
#
# Distributed under the terms of the GNU General Public License with exception
# for distributing bootloader.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------
# The win32.client.gencache code must be allowed to create the cache in %temp%
# (user's temp). It is necessary to get the gencache code to use a suitable
# directory other than the default in lib\site-packages\win32com\client\gen_py.
# PyInstaller does not provide this directory structure and the frozen
# executable could be placed in a non-writable directory like 'C:\Program Files.
# That's the reason for %temp% directory.
#
# http://www.py2exe.org/index.cgi/UsingEnsureDispatch
import sys
# The win32com fixes aren't needed for Python 3.X
if sys.version_info >= (3, 0):
pass
else:
import atexit
import os
import shutil
import tempfile
# Put gen_py cache in temp directory.
supportdir = tempfile.mkdtemp()
# gen_py has to be put into directory 'gen_py'.
genpydir = os.path.join(supportdir, 'gen_py')
# Create 'gen_py' directory. This directory does not need
# to contain '__init__.py' file.
try:
# win32com gencache cannot be put directly to 'supportdir' with any
# random name. It has to be put in a directory called 'gen_py'.
# This is the reason why to create this directory in supportdir'.
os.makedirs(genpydir)
# Remove temp directory at application exit and ignore any errors.
atexit.register(shutil.rmtree, supportdir, ignore_errors=True)
except OSError:
pass
# Override the default path to gen_py cache.
import win32com
win32com.__gen_path__ = genpydir
# The attribute __loader__ makes module 'pkg_resources' working but On Windows
# it breaks pywin32 (win32com) and test 'basic/test_pyttsx' will fail. Just
# removing that attribute for win32com fixes that and gencache is created properly.
if hasattr(win32com, '__loader__'):
del win32com.__loader__
# Ensure genpydir is in 'gen_py' module paths.
import win32com.gen_py
win32com.gen_py.__path__.insert(0, genpydir)
原文地址:http://www.lolpzili.com/index.php/archives/20/#comment-2