当前位置: 首页 > 工具软件 > RPyC > 使用案例 >

python rpyc客户端调用服务端方法时使用注意点

穆轶
2023-12-01

使用rpyc遇到两个问题:

问题1 .

client调用server的exposed_xxxx()方法时传进去的参数类型,到了server端会改变,

打印出来是<netref class 'rpyc.core.netref.type'>类型,与原来传进的类型不同

解决方法:

def exposed_clentA_will_use(self, hello):

    hello = rpyc.classic.obtain(hello)

这样就把传进来的hello转变为本地类型,如果本地没有这种类型,需要创建这种类型

比如传进来的是<class 'numpy.ndarray'>类型,但是server本地没有,则需要import numpy

 

问题2.

client调用server的方法时有报错ValueError: pickling is disabled

解决方法:
 

​rpyc_config = rpyc.core.protocol.DEFAULT_CONFIG

rpyc_config['allow_pickle'] = True

host_ip = '127.0.0.1'

conn = rpyc.connect(host_ip, port = 33333, config = rpyc_config)

​

由于是不安全的协议,需要手动允许pickle

字面意思也明确了:allow_pickle

 类似资料: