[英]How to install libcurl with nss backend in aws ec2? (Python 3.6 64bit Amazon Linux)
[英]How to solve “No package espeak available.” error when trying to install speak on AWS ec2 linux?
相同的代碼在我的本地機器(Windows)上運行,但是在安裝 Pyttsx3 后在 AWS Linux 上運行相同的代碼時,它不起作用。
import pyttsx3
engine = pyttsx3.init()
engine.say("I will speak this text")
engine.runAndWait()
這是示例代碼。 我是 AWS 和 LINUX 的新手。
這是錯誤:
Traceback (most recent call last):
File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/__init__.py", line 20, in init
eng = _activeEngines[driverName]
File "/usr/lib64/python3.6/weakref.py", line 137, in __getitem__
o = self.data[key]()
KeyError: None
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/__init__.py", line 22, in init
eng = Engine(driverName, debug)
File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/engine.py", line 30, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/driver.py", line 50, in __init__
self._module = importlib.import_module(name)
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/drivers/espeak.py", line 9, in <module>
from . import _espeak, toUtf8, fromUtf8
File "/home/ec2-user/st_env/env/lib64/python3.6/site-packages/pyttsx3/drivers/_espeak.py", line 18, in <module>
dll = cdll.LoadLibrary('libespeak.so.1')
File "/usr/lib64/python3.6/ctypes/__init__.py", line 421, in LoadLibrary
return self._dlltype(name)
File "/usr/lib64/python3.6/ctypes/__init__.py", line 343, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libespeak.so.1: cannot open shared object file: No such file or directory
編輯:這個OSError:libespeak.so.1:錯誤是因為機器上沒有安裝espeak引擎(正如其他Stackoverflow帖子所建議的那樣),有沒有比sudo yum install espeak安裝espeak的方法?
我已經在主機操作系統Amazon Linux 2
的亞馬遜ec2
實例上測試了以下命令,並且還測試了成功運行的示例 python 代碼。
如果您的主機系統是Amazon Linux 2
,那么您可以使用以下命令安裝espeak
:
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
[ec2-user@aws ~]$ rpm -E %{rhel}
7 --> as you can see here its based on RHEL 7
[ec2-user@aws ~]$ yum list espeak
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Available Packages
espeak.i686 1.47.11-4.amzn2.0.2 amzn2-core
espeak.x86_64 1.47.11-4.amzn2.0.2 amzn2-core
在這里,您可以看到espeak
package 在 Amazon Linux 上可用。 因此,您需要使用以下命令安裝它:
ec2-user@aws ~]$ sudo yum -y install espeak
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
--> Running transaction check
---> Package espeak.x86_64 0:1.47.11-4.amzn2.0.2 will be installed
--> Processing Dependency: libpulse.so.0(PULSE_0)(64bit) for package: espeak-1.47.11-4.amzn2.0.2.x86_64
--> Processing Dependency: libpulse.so.0()(64bit) for package: espeak-1.47.11-4.amzn2.0.2.x86_64
--> Running transaction check
---> Package pulseaudio-libs.x86_64 0:10.0-3.amzn2.0.3 will be installed
--> Processing Dependency: libsndfile.so.1(libsndfile.so.1.0)(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libxcb.so.1()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libsndfile.so.1()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libasyncns.so.0()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libXtst.so.6()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
--> Processing Dependency: libX11-xcb.so.1()(64bit) for package: pulseaudio-libs-10.0-3.amzn2.0.3.x86_64
...
或者
yum localinstall http://mirror.centos.org/centos/7/os/x86_64/Packages/espeak-1.47.11-4.el7.x86_64.rpm
它將安裝 package espeak
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.