python - 如何使用 geopy 在 Anaconda 虚拟环境中禁用证书检查

标签 python ssl anaconda conda geopy

在没有 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/

相关文章:

linux - 向 Linux 服务器上的用户授予写入权限以创建 Anaconda env

r - 使用 conda 安装 R 3.6.1 无限期挂起

python - 使用条件语句从 pandas df 列中减去标量给出 ValueError : The truth value of a Series is ambiguous

python - 在遍历 pandas 数据框时更新列中的值

python - Pycharm:使用 matplotlib 自动显示 x/y 坐标

ssl - 由 : java. lang.ClassNotFoundException : org. springframework.xd.dirt.integration.rabbit.RabbitConnectionFactoryBean 引起

amazon-web-services - 使用自签名证书验证复制从属服务器上的主机身份

python - 如何使用 Python cx_Oracle 从 US7ASCII Oracle 读取国家字符 (>127)?

Java SSLServerSocket 提供了错误的证书

python - 无法在终端中运行 ipython Notebook 或 anaconda (conda) 命令