您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Python xmlrpclib与unix域套接字?

5b51 2022/1/14 8:23:09 python 字数 4039 阅读 616 来源 www.jb51.cc/python

我正在尝试与supervisord进行交互,我想通过一个unix套接字(这是一个共享的主机环境)来谈论它. 我迄今为止所尝试的是: import xmlrpclib server = xmlrpclib.ServerProxy('unix:///path/to/supervisor.sock/RPC2') Traceback (most recent call last): File "<st

概述

我迄今为止所尝试的是:

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.

这可能吗?我应该使用不同的图书馆吗?

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 xmlrpclib与unix域套接字?全部内容,希望文章能够帮你解决使用Python xmlrpclib与unix域套接字?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶