2010-07-13 14 views
6

Obwohl diese Frage hier in StackOverflow sehr beliebt ist, nachdem ich einige Zeit hier und in Google verbracht habe, habe ich noch keine konkrete Antwort auf die am besten geeignete Methode gefunden, SOAP in Python zu verwenden 3.SOAP-Client für Python 3

Ich habe einen Blick auf Does a Python 3 SOAP client module exist?, und ich hoffe, es ist veraltet und heute einige Lösung für dieses Problem aufgetreten sein könnte.

ich über einige Ideen dachte:

  1. Verwenden 2to3-Skript-Port einige vorhandene Bibliotheken Python 3 (seifig, Schaum, etc.).
  2. Last ein externes Modul, von Technologien (Py3k + Jython, Py3k + Python 2.6, etc.)
  3. Write in hard Python Klassen mischen, die Definitionen von WSDL-Dateien (die in tight-Kopplungs/hohe Wartungs impliziert) entspricht .
  4. Schreiben Sie die Software in Python 3.0, rufen Sie die "Python2.6-only" -Modulfunktionen über die execnet package. Dazu muss Python 2.6 auf der Maschine und die in Python3.0 geschriebene Software als eingefrorene Binärdatei installiert sein.

Irgendwelche Ideen?

Vielen Dank im Voraus

Antwort

1

ich wahrscheinlich versuchen, Ihre vorgeschlagene 2to3-Port beginnen würde. Für viele Dinge funktioniert es ziemlich gut. Es wäre immer noch ein oder zwei Tage Arbeit, um etwas wie Seifenlauge zu konvertieren, stelle ich mir vor.

+0

Ich glaube nicht, dass diese Lösung funktionieren würde, 2to3 wurde entworfen, um einfache Übersetzungen wie Druckanweisungen, Ausnahmen, absolute Importe und so weiter zu machen. Sonst würde ich einen SOAPy-Client für py3k veröffentlichen. Stimmst du nicht zu? –

+0

@Eduardo: Ich nicht. Ich habe gesehen, dass einige Python-Module (einschließlich einiger recht komplexer) ausdrücklich angeben, dass ihr offizieller Übergangsmechanismus dafür sorgt, dass 2to3 so gut wie möglich auf ihrer Codebasis funktioniert. Sie werden feststellen, dass die Dokumentation für 2to3 (http://docs.python.org/library/2to3.html) ausdrücklich besagt: "Die Standardbibliothek enthält eine umfangreiche Sammlung von Fixern, die fast den gesamten Code verarbeiten." –

+0

2to3 funktioniert ziemlich gut für viele Codebasen. Die Orte, an denen es zusammenbricht, sind, wo Autoren versuchten, zu schlau zu sein und seltsame Verwendungen von Randfällen zu machen. Wenn der Code in einem einfachen, pythischen Stil geschrieben ist, macht 2to3 oft einen großen Teil der Arbeit. –