Python suds показывает следующие проблемы: «RuntimeError: превышена максимальная глубина рекурсии» - PullRequest
4 голосов
/ 21 апреля 2011

Я нахожусь в процессе вызова веб-сервиса documentum, для которого я начинаю с простого кода:

from suds.client import Client #@UnresolvedImport  
from suds.transport.https import HttpAuthenticated  
import urllib2  
t=HttpAuthenticated(username='x', password='x')  
t.handler = urllib2.HTTPBasicAuthHandler(t.pm)  
t.urlopener = urllib2.build_opener(t.handler)  
url = 'http://hudt17:8888/services/core/ObjectService?wsdl'  
client = Client(url,transport=t)  
print client

Он отлично работает, если url='http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl'.Но мне возвращают эту ошибку, если это не так:

https://docs.google.com/document/pub?id=1Qk8_qji385B9fZB-z4eMbPc1fv1AXVKEtbxr7Xx6AvQ

Что здесь происходит?

Ответы [ 4 ]

5 голосов
/ 12 апреля 2012

Для этой проблемы есть патч:

https://fedorahosted.org/suds/attachment/ticket/239/recurselevel-schema.py.patch

Нажмите на ссылку «Оригинальный формат» внизу страницы. Затем вы можете применить патч, используя:

patch schema.py < recurselevel-schema.py.patch

Затем установите из каталога верхнего уровня источника suds, используя:

easy_install .

1 голос
/ 28 февраля 2012

Это считается блокирующей ошибкой в ​​системе отслеживания проблем Suds: https://fedorahosted.org/suds/ticket/239

К сожалению, эта проблема была открыта более 3 лет, начиная с 2012 года.

1 голос
/ 21 апреля 2011

Вы ссылаетесь на схему XSD, которая ссылается на себя.

Или на другую схему, которая ссылается на первую.

В любом случае одна или несколько схем имеют круглуюзависимость.

0 голосов
/ 25 марта 2016

Я столкнулся с той же проблемой, потребляя огромный wsdl с несколькими включениями и циклическими вызовами.Версия suds-jurko 0.6 не поддерживает это, но текущие разработчики, сокращающие v0.7, похоже, решают эту проблему.

  1. Загрузите последний zip-архив и извлеките: (Найдите тег наконечника или последний тег или ветвь) https://bitbucket.org/jurko/suds/downloads

  2. Установка:

    $ sudo easy_install .
    
  3. Подтвердить:

    $ pip freeze
    

Должно отобразиться:

suds-jurko == 0.7.dev0

...