2017-08-19 2 views
-2

Lorsque vous exécutez le code ci-dessous dans Python 2.7.10 sous Anaconda sans environnement virtuel Conda, cela fonctionne correctement. C'est il y a un an.Comment désactiver la vérification de certificat dans l'environnement virtuel Anaconda avec geopy

from geopy.geocoders import Nominatim 
geolocator = Nominatim() 
location = geolocator.reverse("16.890568, 42.543554", language="en") 

obtenu cette erreur si vous utilisez le même code maintenant dans un environnement virtuel Anaconda Conda dans lequel la racine est Python 3.6 et l'environnement virtuel utilisé est Python 2.7.

GeocoderServiceError: 
    <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)> 

Essayé de recherche SO, Google et vérifier geopy, a trouvé toujours pas de réponse. Au cours de la recherche, il semble que pour désactiver la vérification de certificat ssl pourrait être une solution viable, mais ne sais pas comment. Bienvenue pour tout conseil.

+0

Il est recommandé de ne pas désactiver, essayez [python-certifi] (https://github.com/certifi/python-certifi) – stovfl

Répondre

0

Venez à travers ce site et obtenu la solution de contournement pour le faire fonctionner à nouveau. Il suffit d'insérer le code try-except-else avant d'affecter le geolocator.

from geopy.geocoders import Nominatim 

# Disable SSL certificate verification 
try: 
    _create_unverified_https_context = ssl._create_unverified_context 
except AttributeError: 
    # Legacy Python that doesn't verify HTTPS certificates by default 
    pass 
else: 
    # Handle target environment that doesn't support HTTPS verification 
    ssl._create_default_https_context = _create_unverified_https_context 

location = geolocator.reverse("16.890568, 42.543554", language="en")