在没有 Conda 虚拟环境的 Anaconda 下的 Python 2.7.10 中运行下面的代码时,它工作正常。那是一年前的事了。
from geopy.geocoders import Nominatim
geolocator = Nominatim()
location = geolocator.reverse("16.890568, 42.543554", language="en")
如果现在在Anaconda Conda虚拟环境中运行相同的代码,根是Python 3.6,使用的虚拟环境是Python 2.7,就会出现这个错误。
GeocoderServiceError:
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)>
尝试搜索 SO、Google 并检查 geopy ,仍然没有找到答案。在搜索过程中,似乎禁用 ssl 证书检查可能是一个可行的解决方案,但不知道如何。欢迎提出任何建议。
最佳答案
遇到这个site并获得了使其再次运行的解决方法。只需在分配 geolocator
之前插入 try-except-else 代码。
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")
关于python - 如何使用 geopy 在 Anaconda 虚拟环境中禁用证书检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45774210/