pyttsx: нет модуля с именем 'engine'

Я пытаюсь установить пакет TTS с помощью this. Все было хорошо, пока я не попытался выполнить следующую команду:

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'

Любая помощь будет оценена. Спасибо!


person Jokhongir Mamarasulov    schedule 13.04.2015    source источник
comment
Возможный дубликат import pyttsx работает в python 2.7, но не в python3   -  person user    schedule 04.06.2016


Ответы (9)


Ребят есть обновленный пакет, совместимый с Python3:

pyttsx3

Работает в автономном режиме без задержки звука.

Установка:

pip install pyttsx3

Посетите https://pyttsx3.readthedocs.io для получения полной документации по использованию. Спасибо!

person Natesh bhat    schedule 26.06.2017

Объединение советов Джейкоба Цуй и Джохонгир Мамарасулов ​​ работал у меня. Обобщить:

В 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

См. Ответы вышеупомянутых авторов для обоснования этих изменений.

person csheehey    schedule 29.10.2016
comment
Существует форк этого проекта для Python3, который можно найти здесь: stackoverflow.com/questions/41695104/ Этот проект, похоже, соответствует изменениям, сделанным выше. Однако на Mac есть ошибка stackoverflow.com/questions / 1614648 / после ошибки stackoverflow.com/ questions / 1614648 / после ошибки stackoverflow.com/questions/41637233/, поэтому я пока отказываюсь от реализации pyttsx на Mac. - person Screenack; 25.06.2017
comment
возникнет проблема .. всякий раз, когда вы устанавливаете на другой компьютер. пользователь должен изменить init.py файл. Но pip install pyttsx3 подойдет. - person shiva; 19.10.2020

У меня была такая же проблема, попробуйте использовать pyttsx3 вместо pyttsx. Сначала установите pyttsx3

pip install pyttsx3

и измените

import pyttsx

за

import pyttsx3

После этого вам необходимо изменить импорт движка (если вы используете его в своем основном файле .py). Вместо этого используйте engineio. Установите это

pip install python-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)

Надеюсь, это кому-то поможет

person juan_carlos_yl    schedule 29.11.2018

Для Python3 установите последнюю версию с помощью pip3 install pyttsx3 и позвоните import pyttsx3.

person Wiphop    schedule 08.08.2017

Я нашел решение. Библиотека была создана на языке python2, и между этими двумя версиями не так много различий, но исключительно в этом случае.

Перейдите в папку DP и измените engine.py "except Exception as e" вместо "except Exception, e" < / em>, строка 67. Сделайте то же самое в drive.py, строка 105.

Поскольку файлы защищены, попробуйте выполнить, например, e. г.

sudo nano engine.py (или drive.py)

Думаю, я помог всем с такой проблемой. :)

person Jokhongir Mamarasulov    schedule 14.04.2015
comment
Это не решение, я сделал то, что вы сказали, и проблема осталась прежней. - person GLHF; 07.06.2016
comment
То же самое ... Это не решило проблему ... @GLHF, что ты сделал? как решить эту проблему? - person R.K; 15.07.2017
comment
GLHF - у меня такая же проблема? что ты сделал? - person 0004; 29.09.2018

Измените site_packages / pyttsx / init .py "из Engine import Engine" на

from .engine import Engine

Измените site_packages / pyttsx / engine.py "драйвер импорта" на

from . import driver

Причина: оператор импорта «из движка импорта движка» указывает python импортировать модуль движка из движка каталогов. В нашем случае движок - это не каталог, это файл python, engine.py. Поэтому нам нужно указать python импортировать этот модуль движка из текущего каталога («.»).

person Jacob CUI    schedule 23.06.2016

Я использовал этот код после

pip install pywin32 pypiwin32 pyttsx3

и это отлично сработало для меня

import os
import sys
import pyttsx3

engine = pyttsx3.init()
engine.say('hello world ')
engine.runAndWait()
person Aju George    schedule 03.07.2018

Я была такая же проблема. Сначала попробуйте эту команду:

pip install pyttsx3

а затем не используйте

import pyttsx

использовать это

import pyttsx3

Это будет работать.

person Malik Hamza    schedule 01.05.2021

pyttsx: нет модуля с именем '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.

Перейдите по этой ссылке, чтобы получить предыдущие версии pyttsx3.

ПРИЧИНА:

Причина, по которой мы получаем указанную выше ошибку, связана с версией pyttsx3

который не поддерживается вашей версией Python. Даже если вы получите сообщение об ошибке

ДЛЯ pyttsx

Измените файл init.py, расположенный в C: \ Users \ YOUR USER \ AppData \ Local \ Programs \ Python \ Python38-32 \ Lib \ site_packages \ pyttsx \ init.py

Изменять

from engine import Engine

to

from .engine import Engine

pyttsx

Измените файл engine.py, расположенный в C: \ Users \ YOUR USER \ AppData \ Local \ Programs \ Python \ Python38-32 \ Lib \ site_packages \ pyttsx \ engine.py.

Изменять

import driver

to

from . import driver

Это два основных решения указанной выше ошибки.

person ANONYMOUS-    schedule 24.05.2021