2017-05-16 1 views
0

Ich habe das gleiche Python-Skript in zwei Umgebungen. In einer es funktioniert gut, aber in den anderen bekomme ich diesen Fehler in meinen Logs:Python Fehler - Typ: <Klasse 'AttributeError'> Args: ('' Modul 'Objekt hat kein Attribut' Retry '",)

15-May-2017 15:29:39 | Type: <class 'AttributeError'> 
15-May-2017 15:29:39 | Args: ("'module' object has no attribute 'Retry'",) 

ich denke, es aus der folgenden kommt:

import minio 
import logging 
from io import BytesIO 
from minio import Minio 


#============================================ 
# todo - error handling in all routines 
#============================================ 

class SoftLayerUtils: 

    @staticmethod 
    def getClient(args): 
     client = Minio(
      args.billing_storage_endpoint, 
      access_key=args.storage_accesskey, 
      secret_key=args.storage_secretkey, 
      secure=False 
     ) 

     return client 

Leider ist der Fehler mich nicht sehr viel sagen, so Ich weiß nicht, wohin ich damit gehen soll.

Hat jemand einen Rat oder können Sie ein Problem mit dem Code sehen?

16-May-2017 07:33:23 | ----------------------------------------------------------------------------------------- 
16-May-2017 07:33:23 | Initialising get_usage 
16-May-2017 07:33:23 | ----------------------------------------------------------------------------------------- 
16-May-2017 07:33:23 | net = testnet 
16-May-2017 07:33:23 | manager_url = https://xxx.xxx.xxx.xxx/manager/api/json/1.0/list.adm 
16-May-2017 07:33:23 | storage_endpoint = endpoint_url 
16-May-2017 07:33:23 | storage_bucket = bucket_url 
16-May-2017 07:33:23 | Calling https://xxx.xxx.xxx.xxx/manager/api/json/1.0/list.adm 
16-May-2017 07:33:23 | [GET] -> https://xxx.xxx.xxx.xxx/manager/api/json/1.0/list.adm 
16-May-2017 07:33:23 | Starting new HTTPS connection (1): xxx.xxx.xxx.xxx 
16-May-2017 07:33:23 | https://xxx.xxx.xxx.xxx:443 "GET /manager/api/json/1.0/list.adm HTTP/1.1" 200 1473 
16-May-2017 07:33:23 |  |- OK 
16-May-2017 07:33:23 | Type: <class 'AttributeError'> 
16-May-2017 07:33:23 | Args: ("'module' object has no attribute 'Retry'",) 
16-May-2017 07:33:23 | ------------------------------------------------------------------------------- 
16-May-2017 07:33:23 | Finished 
16-May-2017 07:33:23 | ------------------------------------------------------------------------------- 
16-May-2017 07:33:23 | ------------------------------------------------------------------------------- 
16-May-2017 07:33:23 | Uploading file /opt/billing/bin/get_usage/get-usage.debug 
16-May-2017 07:33:23 | ------------------------------------------------------------------------------- 
16-May-2017 07:33:23 | Type: <class 'AttributeError'> 
16-May-2017 07:33:23 | Args: ("'module' object has no attribute 'Retry'",) 

Als kleine weitere Tests, wenn ich folgend in Pyhon:

>>> import minio 
>>> from minio import Minio 
>>> Minio("url", "access_key", "secret_key", False) 

ich folgend:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python3.4/dist-packages/minio/api.py", line 152, in __init__ 
    retries=urllib3.Retry(
AttributeError: 'module' object has no attribute 'Retry' 

Wenn aber ich boto3:

>>> import boto3 
>>> s3client = boto3.client('s3', endpoint_url='https://url', 
     aws_access_key_id = 'access_key', 
     aws_secret_access_key = 'secret_key') 
    print(s3client.list_buckets()) 

Ich bekomme eine JSON-Antwort.

Es sieht aus wie ein Paket funktioniert und das andere nicht.

+2

posten Sie den vollen Stacktrace bitte – e4c5

+0

Sorry, ich bin nicht gewohnt, Python. Wie mache ich das? – runnerpaul

+1

Sie hätten die vollständige Stapelüberwachung angeguckt (die alle Zeilen des aktuellen Ausführungsstapels enthielt, als der Fehler auftrat), aber nur die Kopie davon eingefügt. – e4c5

Antwort

0

Dies löste das Problem:

sudo pip3 install --upgrade urllib3 

ich war:

pip3 show urllib3 
--- 
Name: urllib3 
Version: 1.7.1 
Location: /usr/lib/python3/dist-packages 
Requires: 

Ich bin jetzt auf:

pip3 show urllib3 
--- 
Name: urllib3 
Version: 1.21.1 
Location: /usr/local/lib/python3.4/dist-packages 
Requires: 

Danke für die Hilfe.

0

Die Module minio und urllib3 stimmen nicht überein. Entweder urllib3 ist veraltet auf der Maschine, die das Problem zeigt, oder Sie haben eine urllib3.py Datei umher schweben, das ist nicht das eigentliche Modul.

+0

PIP3 zeigen urllib3 --- Name: urllib3 Version: 1.7.1 Ort:/usr/lib/python3/dist-Pakete Benötigt: das ist, was ich auf dem Server. Ich habe Minio 2.2.2 – runnerpaul

Verwandte Themen