2011-08-12 30 views
6

Tôi đang sử dụng httplib2 để thực hiện cuộc gọi đến Amazon Web Services (AWS):Làm cách nào để thực hiện cuộc gọi đến AWS bằng Python 3 và httplib2 trên Windows 7?

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

Tuy nhiên nó không tìm CA (tôi nghĩ):

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 

Câu hỏi của tôi:

  1. Có điều gì tôi cần làm để định cấu hình HĐH và môi trường của tôi để hoạt động không?
  2. Tôi đã nhìn thấy rất nhiều bài đăng về việc đảm bảo thư viện ổ cắm được xây dựng cho SSL trong Python 2; điều đó áp dụng cho Python 3?

Cảm ơn!

+0

GIẢI THÍCH: Tập lệnh thiết lập httplib2 cho Python 3 không sao chép 'cacerts.txt' vào thư mục lib của Python. Tôi đã sao chép thư mục theo cách thủ công và mọi thứ đã hoạt động. – Seth

+3

Nếu bạn giải quyết vấn đề của riêng bạn, bạn không nên thay đổi tiêu đề, nhưng đăng giải pháp của bạn như là một câu trả lời và sau đó đánh dấu nó là chấp nhận. Điều này sẽ giúp những người tìm kiếm cùng một câu hỏi và có thể giúp bạn nhận được một vài phiếu bầu. –

+0

Cảm ơn @Dour, đã xong. – Seth

Trả lời

5

Thư mục httplib2/Python3 bị thiếu cacerts.txt, do đó thư mục này không được sao chép vào thư mục Python/lib. Tôi đã sao chép tệp ở đó theo cách thủ công và mọi thứ đã hoạt động. Đây là một vấn đề đã biết với httplib2.

+0

Tôi thấy rằng tôi không có tệp 'cacerts.txt' trên hệ thống Ubuntu của mình. Tôi đã lấy một bản sao từ [đây] (http://httplib2.googlecode.com/hg-history/6525cadfde53279479533c1235e2661f5c147afc/python2/httplib2/cacerts.txt) và lưu nó vào thư mục 'httplib2'. Chạy 'python -c" import httplib2; in httplib2 .__ file __ "' để tìm ra thư mục 'httplib2' của bạn ở đâu. – David

+0

Sự cố cacerts.txt bị thiếu đã được khắc phục ở đây: http://bit.ly/ziEaNj – David

+0

Điều này đã khắc phục sự cố cho tôi. Cảm ơn! –

0

Tôi biết trễ trò chơi nhưng vấn đề của tôi liên quan đến lệnh PYTHONPATH không hợp lệ trong tiểu sử bash của tôi và do đó thư mục được đặt ở vị trí không chính xác.

Giải pháp là xóa lệnh PYTHONPATH trong hồ sơ bash của tôi và thì đấy.

Các vấn đề liên quan