python - Google App EngineのSSLError(ローカル開発サーバー)

python google-app-engine amazon-s3 boto

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')
答え
ここでの実際の問題は、AppEngineが、sslなどの特定の標準の組み込みpythonモジュールをインポートできないようにするために、いじり回していることです。

boto IRCでこれについていくつかの会話があり、ユーザーの1人がこのパッチを思い付きました:

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

これのいくつかのフォームはおそらくボトマスターにまもなく統合されるでしょう。
関連記事

python - Django:STATIC_URLはappnameをURLに追加します

python - flickAPI:ユーザーアカウントのセットを一覧表示するにはどうすればよいですか?

python - Pythonの他の属性定義内からクラス属性にアクセスする

python - CherryPyでのユーザー管理

python - GStreamerとTheora

python - DjangoカスタムChangeUserForm設定is_active、is_staff、is_superuserをFalseに設定

python - StringToSignの作成

python - 'コマンドラインインテリセンス'(TAB TAB)をPythonスクリプトで動作させる方法は?

python - 自動的にインポートされたモジュールを制御する

python - 書式付きでPythonスクリプトを保存-特殊文字