pyttsx3:尚未调用OSError 2147221008 CoInitialize

问题描述

我有一个Flask应用,该应用会拾取一个图像文件,使用Tesseract OCR提取文本,然后使用pyttsx3将其转换为mp3。它将.txt和mp3文件保存在同一目录中。

第一次运行正常。

但是,在不重新启动应用程序的情况下再次运行它,并且pyttsx3操作失败并显示

OSError: [WinError -2147221008] CoInitialize has not been called

Traceback (most recent call last)

File "C:\Users\xxxxx\AppData\Local\Programs\Python\python38\Lib\site-packages\pyttsx3\__init__.py",line 20,in init

eng = _activeEngines[driverName]

File "C:\Users\xxxxx\AppData\Local\Programs\Python\python38\Lib\weakref.py",line 131,in __getitem__

o = self.data[key]()

注释掉对pyttsx3的调用可以解决错误-现在可以一个一个上传多个图像而不会崩溃,因此肯定是pyttsx3引起了故障。

似乎循环仍在运行,因此它无法处理下一个图像,因为它仍在忙于第一个图像。

到目前为止已尝试:

  • 使用的pyttsx3版本2.71-应用失败,出现其他共同错误
  • 使用32位python解释器-没什么区别
  • 使用会话代替文本的全局变量-没什么

Windows 10 Pro v1903

浏览器尝试过:Edge,Chrome,Opera Python版本3.8.4 64位

pyttsx3 v 2.90

IDE = VS代码

感谢帮助

解决方法

原来,这是计算机特定的错误。仍然不知道是什么原因造成的,而是在另一台Windows 10计算机和Linux机器上,该应用程序运行良好,没有错误。