怎么安装python 的扩展库-suds?

 我来答
159357asdsky
推荐于2019-11-03 · TA获得超过6458个赞
知道小有建树答主
回答量:130
采纳率:70%
帮助的人:6.4万
展开全部

首先建议你安装一个扩展库安装工具,推荐easy_install工具,你可以在网上下载,也可以先去下载一个 ez_setup.py ,这个程序下载后用python.exe运行一下,会自动根据你的版本帮你下载和安装一个easy_install,目前只支持到python2.6,看来python3目前还是没有太多的公司在使用啊。。。
后面就可以用这个easy_install工具进行第三方库的下载了,比如我要下载soaplib这个库,可以执行easy_install soaplib,它会自己去相关网站查找这个库,以及这个库的依赖,如果你手工安装,那依赖会把你搞疯掉的

关于哪个库更适用做webservice

现在网上查到最多的是ZSI或者叫soappy,实际上05年之后就没有更新了,而且只支持到2.5,放弃

soaplib,这个目前2.0,还是不错的,不过手册不是太好读,只有server端的用法,client我没找到suds,这个我在用,用起来比较简单,示例代码如下:

[python] view plain copy

  • The library is now ready to use. We start by importing the suds library, creating a client based on a SOAP url, and asking the library to print the SOAP web service methods that are available to us.  

  • import suds  

  • url = "http://www.ecubicle.net/iptocountry.asmx?wsdl"  

  • client = suds.client.Client(url)  

  • print client  

  • From the output of the last print command, we learn that there is a method called FindCountryAsString that takes one argument: the IP address.  

  • print client.service.FindCountryAsString("194.145.200.104")  

  • And it shows (edited for readability):  

  • <?xml version="1.0"?>  

  • <IPAddressService>  

  • <country>Netherlands</country>  

  • </IPAddressService>  

  • Normally you want to have the contents of the SOAP body. This is what suds provides in a very elegant way. However, you’re a bit stuck when you want to get something from the SOAP header. The author of suds realised this and made a backdoor to get the information anyway. We start by showing what the function last_received contains:  

  • print client.last_received()  

  • <?xml version="1.0" encoding="UTF-8"?>  

  • <soap:Envelope>  

  • <soap:Header>  

  • <ResponseHeader xmlns="">  

  • <resultCode>1000</resultCode>  

  • <resultDescription>Success</resultDescription>  

  • </ResponseHeader>  

  • </soap:Header>  

  • <soap:Body>  

  • ...  

  • </soap:Body>  

  • </soap:Envelope>  

  • We can get portions of this data by doing some XML handling. Let’s say we want to print the resultCode:  

  • print client.last_received().getChild("soap:Envelope").getChild("soap:Header")  

  • .getChild("ResponseHeader").getChild("resultCode").getText()  

浙江启扬智能科技有限公司
2023-06-12 广告
Android和ARM、Linux之间存在密切的联系。Android是一种基于Linux内核的嵌入式智能操作系统,它采用了ARM处理器作为其主要处理器架构。Android的内核和许多应用程序都是基于ARM架构编写的,包括处理器和内存管理器。... 点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式