Python 2 bis 3 Bytes / Zeichenfolge Fehler

8

Ich versuche, eine Python-Bibliothek für Python 2 in Python 3 zu konvertieren, hier ist der Code .

>

Ich habe einen Fehler in Zeile 152. In der Py2-Version lautet die Funktion:

%Vor%

Der Fehler ist:

  

TypeError: Kann Bytes nicht konvertieren   string implizit implizit

Ich habe festgestellt, dass ich die Variable dekodieren muss, also habe ich die Funktion folgendermaßen geändert:

%Vor%

Es funktioniert, aber ich habe einen anderen Fehler in der Asyncore-Bibliothek, der das sagte

  

(der Typ) muss Bytes oder Puffer sein, nicht   str

Also, was kann ich tun?

    
Julien Guigner 05.11.2010, 08:52
quelle

1 Antwort

5

Sie müssen klar darüber sein, wo Sie Bytes und wo Sie Strings wollen. Wenn Sie einfach decode und encode hinzufügen, wo die Fehler angezeigt werden, spielen Sie whack-a-mol. In Ihrem Fall schreiben Sie eine Socket-Implementierung. Sockets befassen sich mit Bytes, nicht mit Strings. So würde ich denken, dass Ihr _write_buffer ein bytes-Objekt sein sollte, keine Schnur, wie Sie es jetzt haben.

Zeile 91 sollte sich ändern zu:

%Vor%

Dann können Sie von dort aus arbeiten, um sicherzustellen, dass Sie durchgehend Bytes verwenden.

    
Ned Batchelder 05.11.2010, 09:24
quelle

Tags und Links