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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了import pyttsx在python 2.7中工作,但不在python3中相关的知识,希望对你有一定的参考价值。

问题:导入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显示....

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

谢谢你的帮助!

答案

我相信你在寻找图书馆:

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();
另一答案

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

pyttsx found on PyPiPeter 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的测试脚本了。

另一答案

在python 3中试试这个:

pip install pyttsx3

如果它给出了引擎错误,例如“找不到引擎”,那么尝试安装它。

pip install python-engineio

另一答案

我不确定你要做什么......

在python 3中,你必须调用引擎:

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

以上是关于import pyttsx在python 2.7中工作,但不在python3中的主要内容,如果未能解决你的问题,请参考以下文章

python 文字转语音包pyttsx安装出错解决方法

python:更改pyttsx缩写

带有 Adwords API 的 Python 2.7:ImportError: cannot import name AdWordsClient

Python语言库pyttsx3

Python AppEngine 'import MySQLdb' 不工作,OS X 10.9.2,python 2.7

python 利用pyttsx3文字转语音