import pyttsx works in python 2.7, but not in python3
Question : why is python3 unable to find the engine module when importing pyttsx?
Details :
I'm doing this on a raspberry pi with Raspbian Wheezy
Under python 2.7, the following works:
>>> import pyttsx
Under python3, the following happens:
>>> import pyttsx
Traceback (etc...)
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/dist-packages/pyttsx-1.1-py3.2.egg/pyttsx/__init__.py", line 18, in <module>
ImportError: No module named engine
I've installed and used sudo pip install pyttsx
I've imported sys
sys.path contains this...
>>> 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 results in...
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 shows....
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
Thanks for your help!
I believe you are looking for the library:
pyttsx3
This python3 compatible version is now packaged in pypi and works pretty well for both python2 and python3 and as far as i have tested , it didn't give any error.
just use :
pip install pyttsx3
Usage :
import pyttsx3
engine = pyttsx3.init()
engine.say("I am talking now ");
engine.setProperty('rate',100)
engine.runAndWait();
I attempted to install pyttsx on Python 3.4 (on Windows). Here's what I discovered:
The pyttsx found on PyPi was developed by Peter Parente on GitHub.
Parente has abandoned further development, and never ported it to Python 3. I cannot even get his version to install on Python 3. I am not sure how you managed this.
A user called James Percent forked it and made a fairly minimal attempt to make it Python 3 compatible.
I found that attempt didn't go far enough, because - while I could install it and even import pyttsx
successfully, when I tried to call pyttsx.init()
it would do a dynamic import of a driver, and fail with an import error.
I made a further fork to fix that, which I will submit to James Percent. With those changes in place, I am able to run @Khanrad's test script.
I'm not sure what you are trying to do...
In python 3, you have to call engine:
engine = pyttsx.init()
engine.say("What you want to say")
engine.runAndWait()
链接地址: http://www.djcxy.com/p/72008.html