2

当我尝试在 App Engine 上使用 boto 库时,出现下一个错误:

Traceback (most recent call last):
  File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__
    handler.get(*groups)
  File "E:\Probes\pruebas\pruebasAWS\main.py", line 26, in get
    conn = S3Connection('<KEY1>','<KEY2>')
  File "E:\Probes\pruebas\pruebasAWS\boto\s3\connection.py", line 148, in __init__
    path=path, provider=provider)
  File "E:\Probes\pruebas\pruebasAWS\boto\connection.py", line 231, in __init__
    self.http_unretryable_exceptions.append(ssl.SSLError)
AttributeError: 'module' object has no attribute 'SSLError'

我已经安装了 OpenSSL 和 Python 2.7。用于 python 的 OpenSSL 和 SSL 库正在运行,当我将应用程序部署到 Google 基础设施时,它工作正常。当我尝试在本地机器上执行应用程序时,问题就来了。

代码是:

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from boto.s3.connection import S3Connection
import hashlib


class MainHandler(webapp.RequestHandler):
    def get(self):
        conn = S3Connection('<KEY1>','<KEY2>')
        bucket = conn.create_bucket(hashlib.md5('noTRePeaTedBuCket').hexdigest()+"probe")
        if bucket:
            self.response.out.write('Bucket creado')
        else:
            self.response.out.write('Bucket NO creado')
4

1 回答 1

2

这里的实际问题是 AppEngine 搞砸了一些事情,使得无法导入某些标准的内置 python 模块,例如 ssl。

在 boto IRC 上对此进行了一些讨论,其中一位用户提出了这个补丁:

https://github.com/samba/boto/commit/6f1ab73d92ff6fb2589362bbdadf6bbe66811e7e

这种形式的某种形式可能很快会合并到 boto master 中。

于 2011-09-09T19:22:54.193 回答