Ich installierte Google Speech API auf einem Centos 7-Computer mit Python 2.7.5 und einem Gentoo Linux-Computer mit Python 2.7.2. Ich folgte diesem Verfahren basierend auf This official link:Google Speech API-Authentifizierungsfehler TransportError: HTTPSConnectionPool
- Installierte Pip neueste Version.
- die globale Variable für die Authentifizierung Set
export GOOGLE_APPLICATION_CREDENTIALS=/path_to_my_jason_key_file
- Installierte Google Rede mit
pip install google-cloud-speech
- die Testdateien
- Run
python quickstart.py
Ich erhalte In beiden Systemen audio.raw und quickstart.py heruntergeladen haben derselbe TransportError: HTTPSConnectionPool-Fehler.
Dies ist das Trace-Protokoll aus der Centos Maschine:
python quickstart.py
WARNING: yacc table file version is out of date
Traceback (most recent call last):
File "quickstart.py", line 59, in <module>
run_quickstart()
File "quickstart.py", line 51, in run_quickstart
response = client.recognize(config, audio)
File "/usr/lib/python2.7/site-packages/google/cloud/gapic/speech/v1/speech_client.py", line 201, in recognize
return self._recognize(request, options)
File "/usr/lib/python2.7/site-packages/google/gax/api_callable.py", line 452, in inner
return api_caller(api_call, this_settings, request)
File "/usr/lib/python2.7/site-packages/google/gax/api_callable.py", line 438, in base_caller
return api_call(*args)
File "/usr/lib/python2.7/site-packages/google/gax/api_callable.py", line 376, in inner
return a_func(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/google/gax/retry.py", line 127, in inner
' classified as transient', exception)
google.gax.errors.RetryError: RetryError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.UNAUTHENTICATED, Getting metadata from plugin failed with error: Traceback (most recent call last):
File "src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi", line 143, in grpc._cython.cygrpc.plugin_get_metadata.async_callback (src/python/grpcio/grpc/_cython/cygrpc.c:7002)
File "/usr/lib64/python2.7/site-packages/grpc/_plugin_wrapping.py", line 91, in __call__
AuthMetadataPluginCallback(wrapped_cygrpc_callback))
File "/usr/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 73, in __call__
callback(self._get_authorization_headers(context), None)
File "/usr/lib/python2.7/site-packages/google/auth/transport/grpc.py", line 61, in _get_authorization_headers
headers)
File "/usr/lib/python2.7/site-packages/google/auth/credentials.py", line 121, in before_request
self.refresh(request)
File "/usr/lib/python2.7/site-packages/google/oauth2/service_account.py", line 322, in refresh
request, self._token_uri, assertion)
File "/usr/lib/python2.7/site-packages/google/oauth2/_client.py", line 143, in jwt_grant
response_data = _token_endpoint_request(request, token_uri, body)
File "/usr/lib/python2.7/site-packages/google/oauth2/_client.py", line 104, in _token_endpoint_request
method='POST', url=token_uri, headers=headers, body=body)
File "/usr/lib/python2.7/site-packages/google/auth/transport/requests.py", line 115, in __call__
raise exceptions.TransportError(exc)
TransportError: HTTPSConnectionPool(host='accounts.google.com', port=443): Max retries exceeded with url: /o/oauth2/token (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:765)'),))
)>)
Es ist so ziemlich der gleiche Protokollfehler in beiden Systemen. Was fehlt mir in der Konfiguration?
Update 07/11/2017: Es scheint ein Problem mit der Version von openssl zu sein. Die folgende Anweisung von here mit yum update openssl
, die zu openssl 1.0.2 udated ist, löste das Problem für Centos 7. Immer noch versucht, OpenSSL in Gentoo von Quelle zu aktualisieren.
Update 2 07/11/2017: Aktualisiert openssl in Gentoo Linux zu 1.0.2m, aber der Fehler bleibt bestehen. Der einzige Unterschied ist, dass es _ssl.c:504 error:14090086 routines:SSL3_GET_SERVER_CERTIFICATE: certificate verify failed
sagt.