Python suds显示以下问题“RuntimeError:超出最大递归深度”

时间:2011-04-21 10:27:49

标签: python suds

我正在调用一个documentum webservice,我从一个简单的代码开始:

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 个答案:

答案 0 :(得分:5)

此问题有一个补丁:

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

单击页面底部的“原始格式”链接。然后,您可以使用以下方法应用修补程序:

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

然后使用以下命令从suds source顶级目录安装:

easy_install .

答案 1 :(得分:1)

您正在引用一个引用自身的XSD架构。

或者引用另一个引用第一个模式的模式。

在任何情况下,一个或多个具有循环依赖的模式。

答案 2 :(得分:1)

这被视为Suds问题跟踪器的阻止错误:https://fedorahosted.org/suds/ticket/239

不幸的是,截至2012年,这个问题已经开放了3年多。

答案 3 :(得分:0)

我遇到了同样的问题,消耗了一个包含多个包含和循环调用的巨大wsdl。 suds-jurko的0.6版本不支持这一点,但目前开发人员削减v0.7似乎解决了这个问题。

  1. 下载最新的zip和提取:(查找提示标记或最新标记或分支) https://bitbucket.org/jurko/suds/downloads

  2. 安装:

    $ sudo easy_install .
    
  3. 验证

    $ pip freeze
    
  4. 应该显示:

      

    泡沫-jurko == 0.7.dev0