Ich habe ein Skript, das ich gerne weiter verwenden würde, aber es sieht so aus, als müsste ich entweder eine Abhilfe für einen Fehler in Python 3 finden oder ein Downgrade auf 2.6 durchführen und somit auch andere Skripte herunterstufen. ..
Hoffentlich hat jemand hier schon einen Workaround gefunden.
Das Problem ist, dass aufgrund der neuen Änderungen in Python 3.0 in Bezug auf Bytes und Strings nicht der gesamte Bibliothekscode anscheinend getestet wird.
Ich habe ein Skript, das eine Seite von einem Webserver herunterlädt. Dieses Skript hat einen Benutzernamen und ein Passwort als Teil der URL in Python 2.6 übergeben, aber in Python 3.0 funktioniert das nicht mehr.
Zum Beispiel:
%Vor%schlägt mit dieser Ausnahme fehl:
%Vor%Anscheinend benötigt base64-encoding jetzt Bytes und gibt einen String aus, und somit urlretrieve (oder ein Code darin), der eine Zeichenfolge von username: password aufbaut und versucht, base64-encode für einfache Autorisierung zu verwenden, schlägt fehl.
Wenn ich stattdessen versuche, urlopen wie folgt zu verwenden:
%Vor%Dann schlägt es mit dieser Ausnahme fehl:
%Vor%Offenbar weiß die URL-Analyse in dieser "Bibliothek zum Abrufen von Next-Gen-URLs" nicht, was mit dem Benutzernamen und den Passwörtern in der URL zu tun ist.
Welche anderen Möglichkeiten habe ich?
Mein Rat wäre, Ihre 2. * Zweigstelle als Ihre Produktionsfiliale zu verwalten, bis Sie die 3.0 Sachen sortieren können.
Ich werde eine Weile warten, bevor ich zu Python 3.0 übergehe. Es scheint eine Menge Leute in Eile zu sein, aber ich will nur alles aussortiert haben und eine ordentliche Auswahl an Bibliotheken von Drittanbietern. Dies kann ein Jahr dauern, es kann 18 Monate dauern, aber der Druck auf "upgrade" ist wirklich niedrig für mich.
Tags und Links python python-3.x urllib