【问题标题】:I am getting a "member not found" error with pyttsx3 in python我在 python 中使用 pyttsx3 收到“找不到成员”错误
【发布时间】:2019-01-24 14:34:57
【问题描述】:

我正在使用 Visual Studio 2017 并创建一个 Python 应用程序。我在 python 中收到 pyttsx3 的“找不到成员”错误。该方法在前几次被成功调用,然后错误被调用,我无法进一步调用该方法。有人可以帮忙吗?

我已尝试在 Python 3.6(64 位)和 Python 3.7(32 位)环境中更新 pyttsx3 模块。

我也尝试过“win32com module not found”问题中的答案。我仍然收到错误

def Say(text):
    try:
        speechEngine = pyttsx3.init()
        speechEngine.setProperty('rate', 150)
        print("{0} | Lola: {1}".format(TimeOfDay(), text))
        speechEngine.say(text)
        speechEngine.runAndWait()
        logging.info("Spoken words ({0})".format(text))
    except Exception as e:
        logging.error("Exception occurred", exc_info=True)
        print("{0} | Lola: {1}".format(TimeOfDay(),"I have come across an error in my code. See the log for details"))

预期的结果是它应该说出输出文本。但是,我收到以下错误:

我收到以下错误:

Exception occurred
 Traceback (most recent call last):

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pyttsx3\__init__.py", line 44, in init
     eng = _activeEngines[driverName]

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\weakref.py", line 137, in __getitem__
     o = self.data[key]()

  KeyError: None

在处理上述异常的过程中,又发生了一个异常:

 Traceback (most recent call last):

   File "C:\Users\IllyS\OneDrive\Programming\My Programs\GitHub\Lola-Mark-II\Lola\Lola.py", line 23, in Say  
     speechEngine = pyttsx3.init()  

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pyttsx3\__init__.py", line 46, in init  
     eng = Engine(driverName, debug)  

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pyttsx3\engine.py", line 52, in __init__  
     self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pyttsx3\driver.py", line 77, in __init__
     self._driver = self._module.buildDriver(weakref.proxy(self))  

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pyttsx3\drivers\sapi5.py", line 22, in buildDriver  
     return SAPI5Driver(proxy)  

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pyttsx3\drivers\sapi5.py", line 41, in __init__  
     self.setProperty('voice', self.getProperty('voice'))  

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pyttsx3\drivers\sapi5.py", line 72, in getProperty  
     return self._tts.Voice.Id  

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\win32com\client\__init__.py", line 474, in __getattr__  
     return self._ApplyTypes_(*args)  

   File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\win32com\client\__init__.py", line 467, in _ApplyTypes_  
     self._oleobj_.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args),
     pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, 'Member not found.', None, 0, -2147201001), None)  

【问题讨论】:

  • 考虑格式化您的异常(我知道这很痛苦!),就像您编写代码一样。这将使您的问题更具可读性,从而更有可能得到答案。
  • 我是 Python 和异常的新手。你能指导我正确的格式吗?谢谢
  • 我认为您的 Python 格式很好。难以阅读的是异常本身。我为你做了第一个作为例子
  • 我已经搞定了,谢谢你的帮助。这样更好吗?
  • 尝试在没有 try/except 的情况下运行此代码,这有助于使异常更清晰

标签: python python-3.x visual-studio-2017 pyttsx


【解决方案1】:

我修正了错误。这是因为我在方法中一遍又一遍地调用speechEngine = pyttsx3.init()speechEngine.setProperty('rate', 150)(因为我有一个 while 循环调用这个方法)。我把它们移到外面,它奏效了。目前在任何时间后都没有看到错误。看看会怎么样.....

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 2015-09-24
    • 2022-01-20
    • 2019-09-03
    • 2015-10-06
    • 1970-01-01
    相关资源
    最近更新 更多