首页 > 解决方案 > pyttsx3 无法在新安装的 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,还尝试了一些相关问题中给出的解决方案,但没有任何效果。

提前致谢

标签: pythonwindows-10text-to-speechpyttsx

解决方案


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

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


现在问题出在win32*.pyds 中,所以看起来你pyttsx3是 32bit

根据pypi.org,您可以尝试pip install pypiwin32修复win32win32api错误。


推荐阅读