Несмотря на то, что на этот вопрос принят приемлемый ответ, есть несколько замечаний, которые я бы хотел отметить в отношении пены.
В настоящее время я пишу некоторый код для взаимодействия с хостингом сообщества .tel для работы, и мне нужна была библиотека Python SOAP, и suds был в значительной степени идеальным, за исключением отсутствия поддержки SOAP 1.2.
Мне удалось обойти проблему, так как для моих целей SOAP 1.1 и SOAP 1.2 имеют достаточно общего общего, так что я смог просто пропатчить suds для использования пространства имен конверта SOAP 1.2. Я обрисовал в общих чертах, что я сделал в этой сути: https://gist.github.com/858851
Как здесь стоит воспроизвести, вот код:
from suds.client import Client
from suds.bindings import binding
import logging
USERNAME = 'username'
PASSWORD = 'password'
# Just for debugging purposes.
logging.basicConfig(level=logging.INFO)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
# Telnic's SOAP server expects a SOAP 1.2 envelope, not a SOAP 1.1 envelope
# and will complain if this hack isn't done.
binding.envns = ('SOAP-ENV', 'http://www.w3.org/2003/05/soap-envelope')
client = Client('client.wsdl',
username=USERNAME,
password=PASSWORD,
headers={'Content-Type': 'application/soap+xml'})
# This will now work just fine.
client.service.someRandomMethod()
Если у меня будет время, я планирую отправить патч в suds, чтобы можно было указать версию SOAP и добавить достаточно недостающие функциональные возможности, чтобы сделать его полезным.