What's the best SOAP client library for Python, and where is the documentation for it?

I've never used SOAP before and I'm sort of new to Python. I'm doing this to get myself acquainted with both technologies. I've installed SOAPlib and I've tried to read their Client documentation, but I don't understand it too well. Is there anything else I can look into which is more suited for being a SOAP Client library for Python?

Edit: Just in case it helps, I'm using Python 2.6.

link | edit

65% accept rate
Does it have to be SOAP, such as using pre-existing web services? Python's xmlrpclib is dead simple to use and I've migrated our SOAP services to XMLRPC with it. –  Kirk Strauser  Oct 16 '08 at 1:03
By the way, I just went through and rated everyone up who'd been down-rated for no apparent reason. –  Kirk Strauser  Oct 16 '08 at 14:50
4  
Sometimes one just want to connect to service that is ONLY provided over SOAP so yes - good python SOAP lib is something that one will sooner or later need. One won't have any chance to convince service provider to replace SOAP with something "cleaner"... –  romke  Sep 23 '09 at 20:24
feedback

15 Answers

up vote 96 down vote accepted

Unfortunately, at the moment, I don't think there is a "best" Python SOAP library. Each of the mainstream ones available has its own pros and cons.

Older libraries:

  • SOAPy: Was the "best," but no longer maintained. Does not work on Python 2.5+

  • ZSI: Very painful to use, and development is slow. Has a module called "SOAPpy", which is different than SOAPy (above).

"Newer" libraries:

  • SUDS: Very Pythonic, and easy to create WSDL-consuming SOAP clients. Creating SOAP servers is a little bit more difficult.

  • soaplib: Creating servers is easy, creating clients a little bit more challenging.

  • ladon: Creating servers is much like in soaplib (using a decorator). Ladon exposes more interfaces than SOAP at the same time without extra user code needed.

  • pysimplesoap: very lightweight but useful for both client and server - includes a web2py server integration that ships with web2py.

Of the above, I've only used SUDS personally, and I liked it a lot.

link | edit
Python 2.5.2, SOAPpy 0.12.0 and my SOAP clients work. –  bortzmeyer  Oct 16 '08 at 9:45
Looks like you misspelled SOAPpy. Or do soappy and soapy both exist? Either way you might want to edit to clarify –  amarillion  May 15 '09 at 19:15
SOAPy and SOAPpy are actually different. I've edited to clarify, and turned the post into a community wiki. –  Samat Jain  May 21 '09 at 20:16
4  
+1 for SUDS, great library! I ran into problems using SUDS with HTTPS web services behind a proxy. Turns out it is a known Python urllib2 issue. See my answer for more details. –  sstock  Aug 6 '09 at 8:35
I've personally, had a lot of success with SOAPpy. Although, I've occasionally had to write some wrappers to fix some things. ( .NET consuming, WSDL serving ) –  sfossen  Oct 20 '10 at 15:41

你可能感兴趣的:(document)