如何使用 geopy 在 Anaconda 虚拟环境中禁用证书检查
How can I disable the certificate check in Anaconda virtual environment with geopy
当运行 Python 2.7.10 下面的代码在没有Conda 虚拟环境的Anaconda 下时,它工作正常。那是一年前的事了。
from geopy.geocoders import Nominatim
geolocator = Nominatim()
location = geolocator.reverse("16.890568, 42.543554", language="en")
如果 运行 现在在 Anaconda Conda 虚拟环境中使用相同的代码,根目录为 Python 3.6,使用的虚拟环境为 Python 2.7.[=13,则会出现此错误=]
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 2.7.10 下面的代码在没有Conda 虚拟环境的Anaconda 下时,它工作正常。那是一年前的事了。
from geopy.geocoders import Nominatim
geolocator = Nominatim()
location = geolocator.reverse("16.890568, 42.543554", language="en")
如果 运行 现在在 Anaconda Conda 虚拟环境中使用相同的代码,根目录为 Python 3.6,使用的虚拟环境为 Python 2.7.[=13,则会出现此错误=]
GeocoderServiceError:
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)>
试图搜索 SO,Google 并检查 geopy,仍然没有找到答案。在搜索过程中,似乎禁用 ssl 证书检查可能是一个可行的解决方案,但不知道如何。欢迎提出任何建议。
遇到这个 site 并找到了使它再次工作的解决方法。只需在分配 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")