2017-06-21 51 views
0

所以我使用boto3來訪問s3服務。當我使用這段代碼時,它在python3.5下正常工作,但在2.7中拋出這個異常,爲什麼?我想用2.7來實現它,因爲我的整個項目都基於2.7。Boto3 python2.7錯誤,但在3.5作品

import boto3 

conn = boto3.resource('s3', region_name='eu-west-1', endpoint_url=HOST, aws_access_key_id=KEY, aws_secret_access_key=SECRET) 

conn.create_bucket(Bucket="pqlamy194762123") 

2.7拋出此異常:

Traceback (most recent call last): 
    File "s3connector.py", line 22, in <module> 
    s.createBucket('pqlamy1947621234') 
    File "s3connector.py", line 15, in createBucket 
    self.s3.create_bucket(Bucket=name ,CreateBucketConfiguration={'LocationConstraint': 'eu-west-1'}) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/client.py", line 310, in _api_call 
    return self._make_api_call(operation_name, kwargs) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/client.py", line 586, in _make_api_call 
    operation_model, request_dict) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 141, in make_request 
    return self._send_request(request_dict, operation_model) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 170, in _send_request 
    success_response, exception): 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 249, in _needs_retry 
    caught_exception=caught_exception, request_dict=request_dict) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/hooks.py", line 227, in emit 
    return self._emit(event_name, kwargs) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/hooks.py", line 210, in _emit 
    response = handler(**kwargs) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 183, in __call__ 
    if self._checker(attempts, response, caught_exception): 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 251, in __call__ 
    caught_exception) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 277, in _should_retry 
    return self._checker(attempt_number, response, caught_exception) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 317, in __call__ 
    caught_exception) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 223, in __call__ 
    attempt_number, caught_exception) 
    File "/home/elk/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 359, in _check_caught_exception 
    raise caught_exception 
botocore.vendored.requests.exceptions.ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer')) 

回答

0

望着錯誤消息,它似乎並沒有被具體到Python版本相關的一個問題,因爲Boto3支持Python 2.7出來的框。所以我做了一個快速清單,可以(或不)幫助您找到問題的原因

  • 您是否在同一環境下嘗試了兩個版本的Python? 104錯誤可以有多種來源,包括網絡和服務器端的臨時問題。
  • 您使用的是穩定版本boto3?嘗試使用最新的穩定版本(1.4.4,因爲我正在寫這篇文章)
  • 如果以前不行,請嘗試使用以前的穩定版本。有些時候,舊版環境中的這些錯誤會在新版本中引入。
  • 如果它們都不起作用,請嘗試填寫錯誤。博託團隊得到了亞馬遜的部分支持,並迅速響應了突破性問題。
+0

嗨!感謝您的回答,我在同一個環境中測試了兩個版本(本地虛擬機上)。 我使用1.4.4版在這兩個2.7和3.5 我會嘗試不同的版本,看看如果多數民衆贊成問題 – PouletFreak

+1

啊不工作或者與版本1.4.3 – PouletFreak

+0

唉唉它的工作原理,很抱歉,該死的代理服務器設置^^ – PouletFreak

相關問題