Python中rpyc的使用简介

RPyC(Remote Python Call ) 是一个 Python 的库用来实现 RPC 和分布式计算的工具。支持同步和异步操作、回调和远程服务以及透明的对象代理。

使用rpyc编写c/s结构程序,完全不用考虑老式的socket编程,现在只用编写简单的3、5行代码即可完成以前的数千行代码的功能。

在实际应用中用的比较多的有两种,一种是调用远端的模块,另外一种是调用远端的函数。
以简单实例讲解:

远端模块的调用:

服务器端:


# coding:utf-8  

from rpyc.core.service  import SlaveService
from rpyc.utils.server import ThreadedServer
 
# SlaveService是一种允许客户端任意的调用服务器端的模块和代码的服务
server = ThreadedServer(SlaveService, auto_register=False, hostname = 'localhost', port=9999)
server.start()

客户端:

import rpyc
conn = rpyc.classic.connect('localhost', 9999)

# 客户端调用模块可以有两种方法,一种是点运算符,一种是中括号;
# 在某些情形下(如selenium的__init__文件中没有子模块webdriver的路径),
# 无法通过点运算符调用,但可以使用[' selenium.webdriver']的形式
path = conn.modules.sys.path

driver = conn.modules['selenium.webdriver'].Firefox()

注意:第二种调用方式后面没有点运算符


远端函数的调用:

服务端:

# coding:utf-8  
      
from rpyc import Service  
from rpyc.utils.serverimport ThreadedServer  
      
class TestService(Service):  
      
    # 对于服务端来说, 只有以"exposed_"打头的方法才能被客户端调用,所以要提供给客户端的方法都得加"exposed_"  
    defexposed_test(self, num):  
        return1+num  
      
sr = ThreadedServer(TestRpyc, port=9999, auto_register=False)  
sr.start()  

客户端:

# coding:utf-8 


import rpyc  
      
# 参数主要是host, port  
conn =rpyc.connect('localhost',9999)  
# test是服务端的那个以"exposed_"开头的方法  
cResult =conn.root.test(11)  
conn.close()  
      
print cResult  

其它rpyc详细看官网文档:http://rpyc.wikidot.com/
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值