使用Python xmlrpclib与unix域套接字?
发布时间:2020-11-17 18:12:53 所属栏目:Python 来源:互联网
导读:我正在尝试与supervisord进行交互,我想通过一个unix套接字(这是一个共享的主机环境)来谈论它. 我迄今为止所尝试的是: import xmlrpclibserver = xmlrpclib.ServerProxy(unix:///path/to/supervisor.sock/RPC2)Traceback (most recent call last): File st
我正在尝试与supervisord进行交互,我想通过一个unix套接字(这是一个共享的主机环境)来谈论它. 我迄今为止所尝试的是: import xmlrpclib server = xmlrpclib.ServerProxy('unix:///path/to/supervisor.sock/RPC2') Traceback (most recent call last): File "<stdin>",line 1,in <module> File "/usr/local/lib/python2.7/xmlrpclib.py",line 1549,in __init__ raise IOError,"unsupported XML-RPC protocol" IOError: unsupported XML-RPC protocol /path/to/supervisor.sock绝对存在. “unix:///path/to/supervisor.sock/RPC2”形式的URI由supervisord使用,这是我想到的地方.该文档不讨论unix套接字:http://docs.python.org/library/xmlrpclib.html. 这可能吗?我应该使用不同的图书馆吗? 解决方法xmlrpclib要求传递的网址以http或https开头.这样做的方法是定义一个忽略该URL的自定义传输.以下是使用从主管传输的一些代码:import supervisor.xmlrpc import xmlrpclib proxy = xmlrpclib.ServerProxy('http://127.0.0.1',transport=supervisor.xmlrpc.SupervisorTransport( None,None,serverurl='unix://'+socketpath)) proxy.supervisor.getState() 如果没有用,这里是一个更新的代码版本here: class UnixStreamHTTPConnection(httplib.HTTPConnection,object): def __init__(self,*args,**kwargs): self.socketpath = kwargs.pop('socketpath') super(UnixStreamHTTPConnection,self).__init__(*args,**kwargs) def connect(self): self.sock = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) self.sock.connect_ex(self.socketpath) class UnixStreamTransport(xmlrpclib.Transport,**kwargs): self.socketpath = kwargs.pop('socketpath') super(UnixStreamTransport,**kwargs) (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – Django模板将模板变量传递到剪切过滤器
- Python中map和列表推导效率比较实例分析
- 可选的python参数没有破折号但有附加参数?
- python – 为什么使用整数作为pymongo的键不起作用?
- python实现的简单文本类游戏实例
- Django tastypie:资源显示与列表请求中的详细请求不同
- django芹菜 – 如何发送request.FILES [‘photo’]到任务
- Python – 有没有办法等待os.unlink()或os.remove()完成?
- `with canvas:`(Python`with something()as x:`)如何隐式
- 如何从python源代码中删除注释和doc字符串?
推荐文章
站长推荐
热点阅读