suds在python3.8中失败



当前正在将我的自动化代码从python 2.7.9迁移到python 3.8.1我们有很多soap api,它们使用了带有python 2.7.9的suds 0.4版本,并且运行良好但在迁移到python 3.8.1之后,它失败了我尝试使用suds-py3库,但它仍然失败。

下面是我得到的错误

File "C:Usersadministratornet.py", line 375, in __getattribute__
if hasattr(attr, '__call__') and 
File "C:Usersadministratorvenvlibsite-packagessudsclient.py", line 315, in __getattr__
return getattr(port, name)
File "C:Usersadministratorvenvlibsite-packagessudsclient.py", line 419, in __getattr__
return getattr(m, name)
File "C:Usersadministratorvenvlibsite-packagessudsclient.py", line 510, in __getattr__
return self[name]
File "C:Usersadministratorvenvlibsite-packagessudsclient.py", line 523, in __getitem__
raise MethodNotFound(qn)
suds.MethodNotFound: Method not found: 'cessService.chargePort.__call__'

我试过sudsjurko和suds3-libs,但还是失败了。

有简单的解决方法吗?

目前切换回2.14并继续。

没有办法让泡沫发挥作用。

首先尝试对suds本身进行更改,其中suds调用由于python 3而失败,我添加了if-else-sso如果python 3这样做,那么python 2也这样做,这样我几乎没有取得什么进展,但我最终对许多模块的核心代码进行了大量更改,添加到我们的框架中变得越来越不可取。

切换到zeep,大约需要2-3分钟才能理解并能够自动化所需内容。Zeep文档在一定程度上是好的,但不是最好的,他们有一些错误。

但是泡沫替代品我们目前可以使用Zeep

最新更新