SSL 在 watson-developer-cloud 示例 microphone-speech-to-text.py 中不可用
SSL not available in watson-developer-cloud example microphone-speech-to-text.py
你好我试着得到下面的例子运行ning:
我 运行 这个 python 脚本在 Gentoo Linux 设备上 Python 2.7.6。
该设备已通过我手机上的移动热点连接到互联网 phone。
不幸的是它不起作用并得到以下输出:
Enter CTRL+C to end recording...
Error received: SSL not available.
Connection closed
我 运行 我 windows 上的脚本,它运行良好。
已安装 SSL 库:
ldconfig -p | grep ssl
vocon_ssl.so (libc6) => /opt/aldebaran/lib/vocon_ssl.so
libssl.so.1.0.0 (libc6) => /usr/lib/libssl.so.1.0.0
libssl.so (libc6) => /usr/lib/libssl.so
libgnutls-openssl.so.27 (libc6) => /usr/lib/libgnutls-openssl.so.27
libgnutls-openssl.so (libc6) => /usr/lib/libgnutls-openssl.so
libevent_openssl-2.0.so.5 (libc6) => /usr/lib/libevent_openssl-2.0.so.5
如果我运行另一个例子(speech_to_text_v1)
我从 watson 得到正确的结果,然后是:
Error received: SSL not available.
有人知道这里的问题是什么吗?
谢谢
如果我敢猜测,那是您的 Gentoo Linux 设备没有设置适当的 TLS / SSL 库。作为测试 运行,根据 API 文档 - https://cloud.ibm.com/apidocs/speech-to-text#list-models
,列表模型通过您设备上的 cURL 请求
curl -X GET -u "apikey:{apikey}" "https://stream.watsonplatform.net/speech-to-text/api/v1/models"
这是通过 TLS 进行的,所以,如果你能让它工作,你可能会更幸运地使用 python 应用程序。
我可以通过
消除 "SSL not available" 错误
pip install backports.ssl-match-hostname
我从 here 那里得到了这个提示。
还提到 here websocket_client
依赖于 backports.ssl-match-hostname
for Python 2.x
安装包后我得到:
Error received: _ssl.c:334: No root certificates specified for verification of other-side certificates.
这可以通过在处理之前调用 SpeechToTextV1
的 disable_SSL_verification()
来临时解决。
要长期修复它,一种方法是将 websocket-client 库降级到 0.47.0 link1 link2
另一种消除“No root certificates specified
”错误的方法是设置由 websocket 库检查的环境变量 WEBSOCKET_CLIENT_CA_BUNDLE
。
例如
os.environ['WEBSOCKET_CLIENT_CA_BUNDLE'] = '/etc/ssl/certs/ca-certificates.crt'
你好我试着得到下面的例子运行ning:
我 运行 这个 python 脚本在 Gentoo Linux 设备上 Python 2.7.6。 该设备已通过我手机上的移动热点连接到互联网 phone。
不幸的是它不起作用并得到以下输出:
Enter CTRL+C to end recording...
Error received: SSL not available.
Connection closed
我 运行 我 windows 上的脚本,它运行良好。
已安装 SSL 库:
ldconfig -p | grep ssl
vocon_ssl.so (libc6) => /opt/aldebaran/lib/vocon_ssl.so
libssl.so.1.0.0 (libc6) => /usr/lib/libssl.so.1.0.0
libssl.so (libc6) => /usr/lib/libssl.so
libgnutls-openssl.so.27 (libc6) => /usr/lib/libgnutls-openssl.so.27
libgnutls-openssl.so (libc6) => /usr/lib/libgnutls-openssl.so
libevent_openssl-2.0.so.5 (libc6) => /usr/lib/libevent_openssl-2.0.so.5
如果我运行另一个例子(speech_to_text_v1) 我从 watson 得到正确的结果,然后是:
Error received: SSL not available.
有人知道这里的问题是什么吗?
谢谢
如果我敢猜测,那是您的 Gentoo Linux 设备没有设置适当的 TLS / SSL 库。作为测试 运行,根据 API 文档 - https://cloud.ibm.com/apidocs/speech-to-text#list-models
,列表模型通过您设备上的 cURL 请求curl -X GET -u "apikey:{apikey}" "https://stream.watsonplatform.net/speech-to-text/api/v1/models"
这是通过 TLS 进行的,所以,如果你能让它工作,你可能会更幸运地使用 python 应用程序。
我可以通过
消除 "SSL not available" 错误pip install backports.ssl-match-hostname
我从 here 那里得到了这个提示。
还提到 here websocket_client
依赖于 backports.ssl-match-hostname
for Python 2.x
安装包后我得到:
Error received: _ssl.c:334: No root certificates specified for verification of other-side certificates.
这可以通过在处理之前调用 SpeechToTextV1
的 disable_SSL_verification()
来临时解决。
要长期修复它,一种方法是将 websocket-client 库降级到 0.47.0 link1 link2
另一种消除“No root certificates specified
”错误的方法是设置由 websocket 库检查的环境变量 WEBSOCKET_CLIENT_CA_BUNDLE
。
例如
os.environ['WEBSOCKET_CLIENT_CA_BUNDLE'] = '/etc/ssl/certs/ca-certificates.crt'