2011-08-12 11 views
6

私はAmazon Webサービス(AWS)への呼び出しを行うためにhttplib2を使用しています:Windows 7でPython 3およびhttplib2を使用して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. OSと環境を設定するために必要なことはありますか?
  2. 私は、ソケットライブラリがPython 2でSSLのために構築されていることを確認するための多くの記事を見てきました。それはPython 3に当てはまりますか?

ありがとう!

+0

解決済み:Python 3用のhttplib2セットアップスクリプトは、 'cacerts.txt'をPythonのlibフォルダにコピーしません。私は手動でフォルダをコピーし、すべてが機能しました。 – Seth

+3

あなた自身の問題を解決した場合は、タイトルを変更するのではなく、解決策を回答として投稿し、それを受け入れたものとしてマークしてください。これは、同じ質問を検索し、いくつかのupvotesを得るかもしれない人々に役立ちます。 –

+0

ありがとう@Dour、done。 – Seth

答えて

5

httplib2/Python3フォルダにはcacerts.txtがないため、Python/libフォルダにコピーされません。手動でそこにファイルをコピーし、すべてが機能しました。これはhttplib2の既知の問題です。

+0

Ubuntuシステムに 'cacerts.txt'ファイルがないことがわかりました。私は[here](http://httplib2.googlecode.com/hg-history/6525cadfde53279479533c1235e2661f5c147afc/python2/httplib2/cacerts.txt)からコピーを取り出し、 'httplib2'ディレクトリに保存しました。 'python -c"を実行します。httplib2;あなたの 'httplib2'ディレクトリの場所を調べるために、httplib2 .__ファイル__" 'を表示します。 – David

+0

欠けているcacerts.txt問題はここで修正されています:http://bit.ly/ziEaNj – David

+0

これは私のために修正されました。ありがとう! –

0

私はゲームの遅れは知っていますが、私の問題は私のbashプロファイルの悪いPYTHONPATHコマンドに関連していたので、ディレクトリは間違った場所に置かれていました。

解決方法は、私のbashプロファイルとvoilaでPYTHONPATHコマンドを削除することでした。

関連する問題