问题:为什么导入pyttsx时python3无法找到引擎模块?
详情:
我在Raspbian Wheezy的树莓派上做这个。
在python 2.7下,以下工作:
>>> import pyttsx
在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
我已经安装并使用了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']
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
unzip -t /usr/local/lib/python3.2/dist-packages/pyttsx-1.1-py3.2.egg show ....
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
感谢您的帮助!
答案 0 :(得分:8)
我试图在Python 3.4上安装pyttsx(在Windows上)。这是我发现的:
pyttsx found on PyPi由Peter Parente on GitHub开发。
Parente放弃了进一步的开发,从未将其移植到Python 3.我甚至无法在Python 3上安装他的版本。我不确定你是如何管理它的。一个名为James Percent forked it的用户,并尝试使其与Python 3兼容。
我发现这种尝试还远远不够,因为 - 虽然我可以成功安装它,甚至成功import pyttsx
,但当我尝试调用pyttsx.init()
时,它会动态导入驱动程序,并导致导入错误。
我做了一个further fork to fix that,我将提交给James Percent。有了这些变化,我就可以运行@Khanrad的测试脚本。
答案 1 :(得分:4)
我相信您正在寻找图书馆:
这个兼容python3的版本现在打包在pypi中,对python2和python3都很有效,据我测试,它没有给出任何错误。
只需使用:
pip install pyttsx3
用法:
import pyttsx3
engine = pyttsx3.init()
engine.say("I am talking now ");
engine.setProperty('rate',100)
engine.runAndWait();
答案 2 :(得分:0)
在python 3中尝试此操作:
pip install pyttsx3
如果出现类似“找不到引擎”的错误,请尝试安装它。
pip install python-engineio
答案 3 :(得分:-3)
我不确定你要做什么......
在python 3中,你必须调用引擎:
engine = pyttsx.init()
engine.say("What you want to say")
engine.runAndWait()