【问题标题】:How do I make calls to AWS with Python 3 and httplib2 on Windows 7?如何在 Windows 7 上使用 Python 3 和 httplib2 调用 AWS?
【发布时间】:2011-10-26 00:06:03
【问题描述】:

我正在使用 httplib2 调用 Amazon Web Services (AWS):

http = httplib2.Http(cache='.cache')
response, content = http.request('https://sdb.amazonaws.com/...')

但是它无法寻找 CA(我认为):

File "C:\Python32\lib\site-packages\httplib2\__init__.py", line 1059, in request self.disable_ssl_certificate_validation)
File "C:\Python32\lib\site-packages\httplib2\__init__.py", line 772, in __init__ context.load_verify_locations(ca_certs)
IOError: [Errno 2] No such file or directory

我的问题:

  1. 我需要做些什么来配置我的操作系统和环境才能使其正常工作吗?
  2. 我看过很多关于确保在 Python 2 中为 SSL 构建套接字库的帖子;这适用于 Python 3 吗?

谢谢!

【问题讨论】:

  • 已解决:Python 3 的 httplib2 设置脚本不会将 cacerts.txt 复制到 Python 的 lib 文件夹。我手动复制了文件夹,一切正常。
  • 如果您解决了自己的问题,则不应更改标题,而是将您的解决方案作为答案发布,然后将其标记为已接受。这将有助于搜索相同问题的人,并可能为您赢得一些支持。

标签: windows-7 ssl python-3.x amazon-web-services httplib2


【解决方案1】:

httplib2 /Python3 文件夹缺少 cacerts.txt,因此它不会被复制到 Python /lib 文件夹。我在那里手动复制了文件,一切正常。这是 httplib2 的一个已知问题。

【讨论】:

  • 我发现我的 Ubuntu 系统上没有 cacerts.txt 文件。我从here 中提取了一份副本并将其保存在httplib2 目录中。运行python -c "import httplib2;print httplib2.__file__" 以找出您的httplib2 目录在哪里。
  • 这为我解决了问题。谢谢!
【解决方案2】:

我知道游戏晚了,但我的问题与我的 bash 配置文件中的错误 PYTHONPATH 命令有关,因此该目录被放置在不正确的位置。

解决方案是删除我的 bash 配置文件中的 PYTHONPATH 命令,瞧。

【讨论】:

    【解决方案3】:

    我花了几个小时试图弄清楚这一点,最后我得到了答案。如果证书 (CA) 文件在您从其他来源或计算机下载时被阻止,则在 Windows 上可能会发生这种情况。右键单击证书文件并选中“取消阻止”框。

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 2011-09-26
      • 2011-06-30
      • 2016-07-16
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      相关资源
      最近更新 更多