我使用pyinstaller编译了程序,未编译时python文件工作正常,但是在编译和测试它时抛出错误。
这是完整的错误,我认为可能是因为pyinstaller
Traceback (most recent call last):
File "site-packages\pyttsx3\__init__.py", line 20, in init
File "c:\python37\lib\weakref.py", line 137, in __getitem__
o = self.data[key]()
KeyError: 'sapi5'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "song_dl.py", line 25, in <module>
engine = pyttsx3.init('sapi5')
File "site-packages\pyttsx3\__init__.py", line 22, in init
File "site-packages\pyttsx3\engine.py", line 30, in __init__
File "site-packages\pyttsx3\driver.py", line 50, in __init__
File "importlib\__init__.py", line 127, in import_module
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'pyttsx3.drivers'
[1072] Failed to execute script song_dl
看看文档的When things went wrong部分特别是Listing hidden imports
似乎pyinstaller无法“知道”它需要添加此特定模块,因此您需要明确指定它
可能类似
$ pyinstaller --hidden-imports=pyttsx3.drivers song_dl.py