ImportError: нет модуля с именем "driver" в pyttsx
Я пытаюсь запустить голосовую программу в Python 3.5.2 и с помощью библиотеки pyttsx. Но я столкнулся с множеством проблем. Первый - о двигателе. Когда я запускаю команду import pyttsx
, компилятор дал мне ошибку, как показано ниже:
ImportError: No module named 'engine'
Затем я нашел этот ответ. Но это тоже не сработало. В конце концов, у меня теперь есть другая - аналогичная - ошибка, как показано ниже:
D:\Users\orcuny\Desktop\AVA>python ava.py
Traceback (most recent call last):
File "D:\Users\orcuny\AppData\Local\Continuum\Anaconda3\lib\site-packages\pyttsx\__init__.py", line 37, in init
eng = _activeEngines[driverName]
File "D:\Users\orcuny\AppData\Local\Continuum\Anaconda3\lib\weakref.py", line 131, in __getitem__
o = self.data[key]()
KeyError: None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "ava.py", line 3, in <module>
engine = pyttsx.init()
File "D:\Users\orcuny\AppData\Local\Continuum\Anaconda3\lib\site-packages\pyttsx\__init__.py", line 39, in init
eng = Engine(driverName, debug)
File "D:\Users\orcuny\AppData\Local\Continuum\Anaconda3\lib\site-packages\pyttsx\engine.py", line 45, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "D:\Users\orcuny\AppData\Local\Continuum\Anaconda3\lib\site-packages\pyttsx\driver.py", line 64, in __init__
self._module = __import__(name, globals(), locals(), [driverName])
ImportError: No module named 'drivers'
Насколько я могу получить ответы на все SO, я предполагаю, что библиотека pyttsx написана в Python 2.X.
Мой первый вопрос: как я могу решить эту проблему?
Второй вопрос: я не смог найти библиотеку pyttsx, написанную в Python 3.X. Кто-нибудь может просветить меня, если есть библиотека pyttsx, написанная в Python 3.X?
Спасибо заранее.
EDIT:
Добавление пакетов сайтов в мои переменные PATH также не помогло.
Ответы
Ответ 1
Ну, проблема, похоже, рассматривается в следующем сообщении
import pyttsx работает в python 2.7, но не в python3
Может кто-нибудь просветить меня, если есть какая-либо библиотека pyttsx, написанная на Python 3.X?
Да, пожалуйста, используйте следующую версию:
https://github.com/jpercent/pyttsx
Это порт Python3 pyttsx
, который, как представляется, решает проблемы, с которыми вы сталкиваетесь, и нацелен на версии Python 3.X.
Например, ошибка, которую вы видите (ImportError: No module named 'drivers'
), адресуется следующей командой commit
https://github.com/jpercent/pyttsx/commit/f035083338f39f7d93b0c610fbef0bb55fc9fc1c
который был объединен в вышеупомянутом репозитории.
Чтобы установить модуль pyttsx
python, вы можете
pip install git+git://github.com/jpercent/pyttsx.git
или
pip install git+https://github.com/jpercent/pyttsx.git
или
git clone https://github.com/jpercent/pyttsx.git
cd pyttsx
sudo python setup.py install
или делать это в виртуальной среде, если вы их используете. Вы можете избежать использования 'sudo' для установки, зависит от используемой вами среды и того, как вы организовали пакеты (местоположения и т.д.).
Конечно, используйте правильный python (python3) и pip (pip3), как у вас в вашей среде.
Удалите и очистите предыдущий пакет pyttsx
, который у вас был там, в среде.
Кроме того, вы можете посетить http://pyttsx.readthedocs.io/en/latest/install.html
для более подробной информации об этом.
Ответ 2
site-packages не включил ваш PY_HOME или PATH. Откройте Enviroment Variables и добавьте его в Системную переменную.
Добавьте что-то вроде ниже, также вы увидите необходимые пакеты в папке.
C:\where_your_python_installation\Lib\site-packages
Надеюсь, что это поможет
Ответ 3
Вы можете установить
pyttsx3
который совместим как с python3, так и с python2 и без ошибок доступен, насколько я тестировал.
Установка:
pip install pyttsx3