2015-03-06 5 views
7

Ich benutze Python 2.7 64 Bit unter Windows 8. Ich habe Anfragen Version 2.3 installiert. Ich versuche, diese Import-Anweisung als Teil bringt in der Anzahl der Wiederholungen in meinem Code auszuführen:Kann nicht importieren requests.packages.urllib3.util 'Retry'

from requests.packages.urllib3.util import Retry 

I urllib3 auch installiert haben (ich habe sie gerade jetzt über Pip installiert ist). Ich erhalte die Fehlermeldung:

Traceback (most recent call last): 
    File "C:\Python27\counter.py", line 3, in <module> 
    from requests.packages.urllib3.util import Retry 
ImportError: cannot import name Retry 

Kann mir jemand sagen, warum das ist? Gibt es andere Abhängigkeiten, die ich nicht kenne, um diese Codezeile erfolgreich auszuführen?

Danke

+0

möglich Duplikat verweisen müssen [Import: Kann nicht Namen X importieren] (http://stackoverflow.com/questions/ 9252543/importerror-can not-import-name-x) – alfasin

+1

@alfasin Ich kann nichts auf dieser Seite sehen, die mir helfen wird? – gdogg371

+0

Überprüfen Sie Ihre Importe - es schlägt vor, dass Sie kreisförmige Abhängigkeiten haben – alfasin

Antwort

6

Möglicherweise benötigen Sie eine neuere Version von Anfragen. Ich habe es gerade mit v2.5.1 versucht:

from requests.packages.urllib3.util import Retry 

Scheint zu arbeiten. Zu Ihrer Information: Die neueste Version ist v2.5.3, eine Aktualisierung lohnt sich.

Auch wenn Sie eine einigermaßen aktuelle Version von urllib3 separat installiert haben, sollten diese auch funktionieren:

from urllib3.util import Retry 

Leider überprüfen wir die spezifische isinstance Art von Retry in PoolManager und ConnectionPool, so dass die beiden Arten von Retry Objekten möglicherweise nicht perfekt austauschbar. (Wenn jemand will, dies zu beheben, würde ich +1 auf einem PR sein.)

Für jetzt, wenn Sie mit der requests Version von urllib3 zur Verwendung des Retry Objekts sind zu wollen, werden Sie sie importieren müssen von dort direkt.

+0

Ich habe vergessen, eine Antwort dafür zu posten. Ich habe versucht, Wiederholungen direkt von Urllib3 zu importieren, als ich es vor ein paar Tagen installiert habe und es hat gut funktioniert. Danke für die Antwort. – gdogg371

+1

@ gdogg371 Ah gut zu wissen, danke. Es sollte in einigen/vielen Fällen in Ordnung sein, aber es kann Randfälle geben, in denen sie nicht perfekt austauschbar sind. Denken Sie daran, wenn Sie auf seltsames Verhalten stoßen. :) – shazow

+0

Was ist die Mindestversion? urllib3 1.7.1/Anfragen 2.2.1 zeigt den Fehler. – Nemo

1

Anfragen nicht mehr hat Module in request.package verkauft

Sie urllib3 direkt