Обновление (2016):
, Если Вам только нужен клиент SOAP, существует хорошо сохраняемая библиотека, названная zeep. Это поддерживает оба Python 2 и 3:)
<час>Обновление:
Дополнительно к тому, что упомянуто выше, я обращусь к страница Python WebServices , которая всегда актуальна со всеми активно сохраняемыми и рекомендуемыми модулями к [1 141] SOAP и все другие типы веб-сервиса.
<час>, К сожалению, в данный момент, я не думаю, что существует "лучшая" библиотека Python SOAP. Каждый из основных доступных имеет свои собственные за и против.
библиотеки Older:
МЫЛЬНЫЙ : Было "лучшим", но больше не поддерживал. Не работает над Python 2.5 +
ZSI: Очень болезненный для использования, и разработка является медленным. Имеет модуль под названием "SOAPpy", который отличается, чем МЫЛЬНЫЙ (выше).
библиотеки "Newer":
ПЕНА : Очень Pythonic, и легкий создать использующие WSDL клиенты SOAP. Создание серверов SOAP является трудным. (Этот пакет не работает с Python3. Поскольку Python3 видят ПЕНУ-py3)
ПЕНА-py3 : версия Python3 ПЕНЫ
позвоночник : Создание серверов легко, создавая сложные клиенты. Документации несколько недостает.
ladon: Создание серверов во многом как в soaplib (использующий декоратора). Ladon представляет больше интерфейсов, чем SOAP одновременно без необходимого кода дополнительного пользователя.
pysimplesoap: очень легкий, но полезный для обоих клиентов и серверов - включает web2py интеграцию сервера, которая поставлется с web2py.
Из вышеупомянутого, я только использовал ПЕНУ лично, и мне понравилось оно много.
Мы использовали SOAPpy от веб-сервисы Python , но кажется, что ZSI (тот же источник) заменяет его.
Мог эта справка: http://users.skynet.be/pascalbotte/rcx-ws-doc/python.htm#SOAPPY
я нашел его путем поиска wsdl
и python
с рациональным существом, что Вам будет нужно wsdl описание сервера SOAP, чтобы сделать любые полезные клиентские обертки....
Как я предположил здесь , я рекомендую Вам самокрутку. Это на самом деле не настолько трудно, и я подозреваю, что это - причина там нет лучших библиотек Python SOAP.
У меня был хороший опыт с ПЕНОЙ https://, fedorahosted.org/suds
Использовал их TestSuite в качестве документации.
Я последовал советам других ответов на этот вопрос и попробовал SUDS . После употребления «в гневе» я должен согласиться: SUDS - это очень приятно! Настоятельно рекомендуется!
У меня действительно возникли проблемы с вызовом веб-служб на основе HTTPS из-за прокси. На момент написания этой статьи это затрагивает всех клиентов веб-служб Python, которые используют urllib2
, поэтому я задокументирую решение здесь.
Модуль urllib2
, поставляемый с python 2.6.2 и ниже, не будет выдавать CONNECT
прокси для сеансов HTTPS-over-HTTP-proxy. Это приводит к длительному таймауту или, если вам повезет, к ошибке, которая выглядит следующим образом:
abort: error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Это была проблема1424152 в системе отслеживания ошибок Python. К отчету об ошибке прилагаются патчи, которые исправят это в Python 2.x и Python 3.x. Проблема уже устранена .
SUDS прост в использовании, но повторный вход не гарантируется. Если вы сохраняете объект WSDL Client () в многопоточном приложении для повышения производительности, возникает определенный риск. Решением этого риска является метод clone (), который вызывает неисправимую ошибку Python 5508, которая, кажется, выводит сообщение, но на самом деле не вызывает исключения. Может сбивать с толку, но это работает. Это по-прежнему лучший клиент SOAP для Python.
Я использую SOAPpy с Python 2.5.3 на производстве.
Мне пришлось вручную отредактировать пару файлов в SOAPpy (что-то насчет кода заголовка в неправильном месте), но кроме этого он работал и продолжает работать очень надежно.
Мы выпустили новую библиотеку: PySimpleSOAP , которая обеспечивает поддержку простого и функционального клиента / сервера. Его цели: простота использования и гибкость (не требуются классы, автогенерируемый код или xml), самоанализ и генерация WSDL, соответствие стандарту WS-I, совместимость (включая Java AXIS, .NET и Jboss WS). Он включен в Web2Py для обеспечения полнофункциональных решений (дополняющих другие поддерживаемые протоколы, такие как XML_RPC, JSON, AMF-RPC и т. Д.).
Если кто-то изучает SOAP или хочет его изучить, я думаю, что это хороший выбор для начала.
В моем заключении имеем следующее:
Мыльная клиентская сторона:
использовать только Suds-jurko (обновлено 2016 г.)
suds в хорошем состоянии и обновляется.
ОБНОВЛЕНИЕ 06/2017:библиотека suds-jurko не обновлена и очевидно заброшена,
Я тестировал библиотеку zeep, но получил ограничения на токены, к настоящему времени только support UsernameToken, я сообщаю об ошибке для создания токена с меткой времени, и автор обновляет код, чтобы исправить это.
Zeep хорошо запускается и имеет хорошую документацию, поэтому я недавно перенес свой код с suds на zeep, и он отлично работает.
Серверная сторона Soap:
У нас есть TGWS, soaplib (pysimplesoap не тестировался) ИМХО использование и помощь soaplib должны быть выбором.
С уважением,
Я считаю, что soaplib отказался от своего клиента SOAP («отправитель») в пользу suds. На данный момент soaplib ориентирован на то, чтобы быть SOAP-сервером, не зависящим от веб-фреймворка («получатель»). В настоящее время soaplib находится в активной разработке и обычно обсуждается в списке рассылки Python SOAP: