【问题标题】:pyttsx: No module named 'engine'pyttsx:没有名为“引擎”的模块
【发布时间】:2015-04-13 21:14:43
【问题描述】:

我正在尝试使用this 安装 TTS 包。在我尝试执行以下命令之前一切正常:

import pyttsx

我得到了这个错误:

File "/usr/local/lib/python3.4/dist-packages/pyttsx/__init__.py", line 18, in module <br>
    from engine import Engine<br>
ImportError: No module named 'engine'

任何帮助将不胜感激。谢谢!

【问题讨论】:

标签: text-to-speech python-3.4 speech-synthesis


【解决方案1】:

伙计们,有一个与 Python3 兼容的更新包:

pyttsx3

离线工作,声音产生没有延迟。

安装:

pip install pyttsx3

访问https://pyttsx3.readthedocs.io 以获取完整的使用文档。 谢谢!

【讨论】:

    【解决方案2】:

    结合Jacob Tsui 和Jokhongir Mamarasulov 的建议对我有用。总结一下:

    在site_packages/pyttsx/init.py中,将“from engine import Engine”修改为

    from .engine import Engine
    

    然后,在 site_packages/pyttsx/engine.py,

    1. 修改import driver为

      from . import driver
      
    2. 修改except Exception, e为

      except Exception as e
      

    最后,在 site_packages/pyttsx/driver.py 修改 except Exception, e 为

    except Exception as e
    

    请参阅上述作者的回复,了解这些更改背后的基本原理。

    【讨论】:

    【解决方案3】:

    我刚遇到同样的问题,请尝试使用 pyttsx3 而不是 pyttsx 首先安装pyttsx3

    pip install pyttsx3
    

    并改变

    import pyttsx
    

    为

    import pyttsx3
    

    之后,您必须更改 引擎导入(如果您在主 .py 文件中使用它)。请改用 engineio。安装它

    pip install python-engineio
    

    然后将 import engine 更改为 import engineio 并更改您的变量。

    这是一个例子

    import pyttsx3
    # import engineio #engineio module is not needed.
    
    engineio = pyttsx3.init()
    voices = engineio.getProperty('voices')
    engineio.setProperty('rate', 130)    # Aquí puedes seleccionar la velocidad de la voz
    engineio.setProperty('voice',voices[0].id)
    
    def speak(text):
        engineio.say(text)
        engineio.runAndWait()
    
    speak("What do you want me to say?")
    while(1):
        phrase = input("--> ")
        if (phrase == "exit"):
            exit(0)
        speak(phrase)
        print(voices)
    

    希望这对某人有所帮助

    【讨论】:

      【解决方案4】:

      Python3请通过pip3 install pyttsx3安装最新版本,并致电import pyttsx3。

      【讨论】:

        【解决方案5】:

        我找到了解决方案。库是用 python2 语言创建的,这两个版本之间没有太大差异,但仅在这种情况下才会发生。

        移动到您的 DP 文件夹并更改 engine.py "except Exception as e" 而不是 "except Exception, e",第 67 行。在 drive.py,第 105 行中执行相同操作。

        由于文件是安全的,请尝试执行,例如。 g.

        sudo nano engine.py(或 drive.py)

        我想我帮助每个人解决了这类问题。 :)

        【讨论】:

        • 这不是解决办法,我按照你说的做了,还是一样的问题。
        • 这里一样..这并没有解决问题..@GLHF你做了什么?如何解决这个问题?
        • GLHF - 我有同样的问题吗?你做了什么?
        【解决方案6】:

        修改site_packages/pyttsx/init.py“从引擎导入引擎”为

        from .engine import Engine
        

        修改site_packages/pyttsx/engine.py“导入驱动”为

        from . import driver
        

        原因:import 语句“from engine import Engine”告诉 python 从目录 engine 导入 Engine 模块。在我们的例子中,engine 不是一个目录,它是一个 python 文件,engine.py。所以我们需要告诉python从当前目录(“.”)导入这个引擎模块。

        【讨论】:

          【解决方案7】:

          我在之后使用了这段代码

          pip install pywin32 pypiwin32 pyttsx3
          

          对我来说效果很好

          import os
          import sys
          import pyttsx3
          
          engine = pyttsx3.init()
          engine.say('hello world ')
          engine.runAndWait()
          

          【讨论】:

            【解决方案8】:

            我有同样的问题。 首先试试这个命令:

            pip install pyttsx3
            

            然后不要使用

            import pyttsx
            

            使用这个

            import pyttsx3
            

            它会起作用的。

            【讨论】:

              【解决方案9】:

              pyttsx: No module named 'engine'

              File "/usr/local/lib/python3.4/dist-packages/pyttsx/__init__.py", line 18, in module <br>
                  from engine import Engine<br>
              ImportError: No module named 'engine'
              

              如果上述错误是您的错误,请尝试安装 pyttsx3 而不是 pyttsx. 安装前检查你的python版本,然后下载与你的python版本兼容的版本。

              请参考this link 以获取以前的pyttsx3 版本

              原因:

              我们得到上述错误的原因是因为pyttsx3版本

              您的 python 版本不支持。即使你得到错误然后

              对于 pyttsx

              修改 init.py 文件位于 C:\Users\你的用户\AppData\Local\Programs\Python\Python38-32\Lib\site_packages\pyttsx\init.py

              改变

              from engine import Engine
              

              到

              from .engine import Engine
              

              pyttsx

              修改位于 C:\Users\YOUR USER\AppData\Local\Programs\Python\Python38-32\Lib\site_packages\pyttsx\engine.py 的 engine.py 文件

              改变

              import driver
              

              到

              from . import driver
              

              以上错误的两种主要解决方案

              【讨论】:

                猜你喜欢
                • 2019-01-30
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-12-25
                • 2017-12-13
                相关资源
                最近更新 更多