import pyttsx在python 2.7中工作,但不在python3中

mnr*_*mnr 6 python python-3.x raspberry-pi

问题:导入pyttsx时为什么python3无法找到引擎模块?

细节:

我在Raspbian Wheezy的树莓派上做这个

在python 2.7下,以下工作:

>>> import pyttsx
Run Code Online (Sandbox Code Playgroud)

在python3下,会发生以下情况:

>>> 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
Run Code Online (Sandbox Code Playgroud)

我安装并使用了sudo pip install pyttsx

我已经导入了sys

sys.path包含这个......

>>> 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']
Run Code Online (Sandbox Code Playgroud)

ls /usr/local/lib/python3.2/dist-packages导致...

easy-install.pth pyttsx-1.1-py3.2.egg setuptools-5.4.1-py3.2.egg setuptools.pth
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Odd*_*ing 8

我试图在Python 3.4(在Windows上)上安装pyttsx.这是我发现的:

PyPi上发现的pyttsx是由Peter Parente在GitHub上开发的.

Parente已经放弃了进一步的开发,并且从未将它移植到Python 3.我甚至无法在Python 3上安装他的版本.我不确定你是如何管理它的.

一个名为James Percent的用户将它分叉并做了相当小的尝试,使其与Python 3兼容.

我发现尝试不够远,因为 - 虽然我可以安装它甚至import pyttsx成功,但当我试图调用pyttsx.init()它时会动态导入驱动程序,并导致导入错误失败.

我做了另一个解决方案,我将提交给James Percent.有了这些变化,我就可以运行@Khanrad的测试脚本了.


Nat*_*hat 5

我相信你正在寻找图书馆:

pyttsx3

这个与 python3 兼容的版本现在打包在 pypi 中,对 python2 和 python3 都很好用,据我测试,它没有给出任何错误。

只需使用:

pip install pyttsx3

用法 :

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