python - import pyttsx 在 python 2.7 中有效,但在 python3 中无效

标签 python python-3.x raspberry-pi

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

详细信息:

我正在使用 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.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

感谢您的帮助!

最佳答案

我试图在 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 - import pyttsx 在 python 2.7 中有效,但在 python3 中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24963638/

相关文章:

相当于 Python 的 rsplit 的 JavaScript

python - 名称错误 : global name 'has_no_changeset' is not defined

python - 如何在浏览器 URL 中显示 django ImageField

wifi - 断开hostap上的用户

linux - App-engine-go 组件在 ARM/raspberry pi 上的组件列表中不可用

python - Scrapy 已完成运行,结果显示在控制台中,但 CSV 输出仍为空白

python 根据条件重置列表的枚举索引

python - 'str' 对象没有属性 'decode'

python - 不返回 YAML 文件的更新并在字符串更新时返回 TypeError

Linux 临时模式