pyttsx3 不适用于新安装的 windows 10

pyttsx3 not working on freshly installed windows 10

我刚刚安装了 windows 10,我正在尝试 运行 以下代码。

import pyttsx3;
engine = pyttsx3.init();
engine.say("I will speak this text");
engine.runAndWait() ;

这用于我之前的 windows 10 安装,但现在出现以下错误

Traceback (most recent call last):
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\site-packages\pyttsx3\__init__.py", line 44, in init
    eng = _activeEngines[driverName]
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\weakref.py", line 137, in __getitem__
    o = self.data[key]()
KeyError: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/ayush/Desktop/sample.py", line 2, in <module>
    engine = pyttsx3.init();
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\site-packages\pyttsx3\__init__.py", line 46, in init
    eng = Engine(driverName, debug)
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\site-packages\pyttsx3\engine.py", line 52, in __init__
    self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\site-packages\pyttsx3\driver.py", line 75, in __init__
    self._module = importlib.import_module(name)
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\site-packages\pyttsx3\drivers\sapi5.py", line 3, in <module>
    import win32com.client
  File "C:\Users\ayush\AppData\Local\Programs\Python\Python36\lib\site-packages\win32com\__init__.py", line 5, in <module>
    import win32api, sys, os
ImportError: DLL load failed: %1 is not a valid Win32 application.

我在 windows 10 上使用 python 3.6.6 64 位。

我花了很多时间尝试不同的解决方案,例如重新安装 python、尝试 python 版本 3.5 和 3.7、重新安装 pyttsx3,还尝试了几个相关问题中给出的解决方案,但没有任何效果。

提前致谢

似乎 win32api.pyd(实际上是 DLL)不是 win32 应用程序。所以我认为它正在将 64 位驱动程序加载到 32 位运行时。

在这种情况下,我会尝试卸载 64 位 python,删除它的文件夹并安装 32 位版本。我相信这会解决您的问题,因为您实际上并不需要 64 位 python.


现在问题出在 win32*.pyds,所以你的 pyttsx3 似乎是 32 位

According to pypi.org, you can try pip install pypiwin32 to fix both win32 and win32api errors.

我尝试安装 Python 32 位,但使用所有可用的选项(例如完整的库)进行了自定义,这样做在解决错误方面产生了奇迹!再次启动 .exe 启动器,点击修改,然后安装每个选项!