2016-04-14 10 views
1

Ich bilde Geocodierungsanfragen api mit Anfragen an googelt:Python: Anfrage an Google Maps API - Handshake-Ausgabe

geo_url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' + geo_address + '&key=' + GOOGLE_API_KEY 
geo_response = requests.get(url=geo_url, verify=False) 
geo = geo_response.json() 

In meinem cloud9 IDE es semalessly funktioniert.

Auf meinem Ubuntu Server mit Apache und mod_wsgi es funktioniert manchmal, aber oft scheitert es mit einem Fehler in Apache error.log:

File "/var/virtualenv/primo/lib/python2.7/site-packages/django/utils/log.py", line 129, in emit 
    self.send_mail(subject, message, fail_silently=True, html_message=html_message) 
    File "/var/virtualenv/primo/lib/python2.7/site-packages/django/utils/log.py", line 132, in send_mail 
    mail.mail_admins(subject, message, *args, connection=self.connection(), **kwargs) 
    File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/__init__.py", line 98, in mail_admins 
    mail.send(fail_silently=fail_silently) 
    File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/message.py", line 303, in send 
    return self.get_connection(fail_silently).send_messages([self]) 
    File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 100, in send_messages 
    new_conn_created = self.open() 
    File "/var/virtualenv/primo/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 64, in open 
    self.connection.starttls(keyfile=self.ssl_keyfile, certfile=self.ssl_certfile) 
    File "/usr/lib/python2.7/smtplib.py", line 649, in starttls 
    self.sock = ssl.wrap_socket(self.sock, keyfile, certfile) 
    File "/usr/lib/python2.7/ssl.py", line 487, in wrap_socket 
    ciphers=ciphers) 
    File "/usr/lib/python2.7/ssl.py", line 243, in __init__ 
    self.do_handshake() 
    File "/usr/lib/python2.7/ssl.py", line 405, in do_handshake 
    self._sslobj.do_handshake() 
    error: [Errno 0] Error 

Ich verstehe nicht, was schief läuft. Kann mir bitte jemand in die richtige Richtung zeigen?

+0

Welche Version von Anfragen verwenden Sie? –

+0

requests == 2.5.3 – caliph

+1

Das neueste ist 2.9.1 jetzt, versuchen Sie ein Upgrade und sehen Sie, ob das Problem weiterhin besteht –

Antwort

1

Nach einer langen Recherche fand ich heraus, es ist ein Bug in Kryptographie-Modul.

See: https://github.com/pyca/cryptography/issues/2299

Abhilfe: Ort WSGIApplicationGroup% {GLOBAL}

in Apache Virtualhost Konfiguration z.B.

<Directory /var/www/path/to/wsgi> 
    <Files wsgi.py> 
     Require all granted 
    </Files> 
    WSGIApplicationGroup %{GLOBAL} 
</Directory> 
+0

Danke. Auch mein Problem gelöst - https://stackoverflow.com/questions/43643674/google-maps-bad-handshake – HenryM