La importación de pyttsx funciona en python 2.7, pero no en python3

Pregunta : ¿por qué python3 no puede encontrar el módulo del motor al importar pyttsx?

Detalles :

Estoy haciendo esto en una pi raspberry con Raspbian Wheezy

Bajo Python 2.7, los siguientes trabajos:

>>> import pyttsx 

Bajo python3, sucede lo siguiente:

 >>> import pyttsx Traceback (etc...) File "", line 1, in  File "/usr/local/lib/python3.2/dist-packages/pyttsx-1.1-py3.2.egg/pyttsx/__init__.py", line 18, in  ImportError: No module named engine 

He instalado y usado sudo pip install pyttsx

He importado sys

sys.path contiene esto …

 >>> print (sys.path) ['','/usr/local/lib/python3.2/dist-packages/setuptools-5.4.1-py3.2.egg', '/usr/local/lib/python3.2/dist-packages/pyttsx-1.1-py3.2.egg', '/usr/lib/python3.2','usr/lib/python3.2/plat-linux2', '/usr/lib/python3.2/lib-dynload','/usr/local/lib/python3.2/dist-packages','/usr/lib/python3/dist-packages'] 

ls /usr/local/lib/python3.2/dist-packages resulta en …

 easy-install.pth pyttsx-1.1-py3.2.egg setuptools-5.4.1-py3.2.egg setuptools.pth 

unzip -t /usr/local/lib/python3.2/dist-packages/pyttsx-1.1-py3.2.egg muestra …

 pyttsx/__init__.py OK pyttsx/voice.py OK pyttsx/engine.py OK (etc...) No errors detected in compressed data of pyttsx-1.1-py3.2.egg 

¡Gracias por tu ayuda!

Creo que estás buscando la biblioteca:

pyttsx3

Esta versión compatible con python3 ahora está empaquetada en pypi y funciona bastante bien tanto para python2 como para python3 y, hasta donde he probado, no dio ningún error.

Solo usa :

pip install pyttsx3

Uso

 import pyttsx3 engine = pyttsx3.init() engine.say("I am talking now "); engine.setProperty('rate',100) engine.runAndWait(); 

Intenté instalar pyttsx en Python 3.4 (en Windows). Esto es lo que descubrí:

El pyttsx encontrado en PyPi fue desarrollado por Peter Parente en GitHub .

Parente ha abandonado el desarrollo adicional y nunca lo ha transferido a Python 3. Ni siquiera puedo instalar su versión en Python 3. No estoy seguro de cómo logró esto.

Un usuario llamado James Percent lo bifurcó e hizo un bash bastante mínimo para hacerlo compatible con Python 3.

Descubrí que el bash no fue suficiente, porque, aunque pude instalarlo e incluso import pyttsx éxito, cuando intenté llamar a pyttsx.init() haría una importación dinámica de un controlador y fallaría con un error de importación .

Hice una bifurcación adicional para arreglar eso , que enviaré a James Percent. Con esos cambios implementados, puedo ejecutar el script de prueba de @ Khanrad.

En Python 3 Prueba esto:

pip install pyttsx3

si da un error de motor como “no se encuentra el motor”, entonces intente instalarlo.

pip install python-engineio

No estoy seguro de lo que estás tratando de hacer …

En Python 3, tienes que llamar al motor:

 engine = pyttsx.init() engine.say("What you want to say") engine.runAndWait()