问题描述
我有一个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引起了故障。
似乎循环仍在运行,因此它无法处理下一个图像,因为它仍在忙于第一个图像。
到目前为止已尝试:
Windows 10 Pro v1903
浏览器尝试过:Edge,Chrome,Opera Python版本3.8.4 64位
pyttsx3 v 2.90
IDE = VS代码
感谢帮助
解决方法
原来,这是计算机特定的错误。仍然不知道是什么原因造成的,而是在另一台Windows 10计算机和Linux机器上,该应用程序运行良好,没有错误。