Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该使用哪个RPC模块在Python中实现RCP,并在以后能够更改连接方法?_Python_Ssh_Rpc - Fatal编程技术网

我应该使用哪个RPC模块在Python中实现RCP,并在以后能够更改连接方法?

我应该使用哪个RPC模块在Python中实现RCP,并在以后能够更改连接方法?,python,ssh,rpc,Python,Ssh,Rpc,我确实需要实现一些从Python到Python的RPC,但是出于安全原因,连接方法非常有限 目前,我似乎可以使用SSH进行连接,并在远程系统上运行单个python脚本 这可能会在将来发生变化,我们可能需要使用其他方式进行连接,可能是telnet,因此我想要一个可以使用不同协议的解决方案 另一个潜在的限制是关于Python版本,它必须与Python 2.5-2.7一起工作,即使客户端和服务器运行不同的版本 我应该用什么,请建议只有当你有成功的经验,否则我也可以谷歌;) 我想说,在您的案例中,沟通两

我确实需要实现一些从Python到Python的RPC,但是出于安全原因,连接方法非常有限

目前,我似乎可以使用
SSH
进行连接,并在远程系统上运行单个python脚本

这可能会在将来发生变化,我们可能需要使用其他方式进行连接,可能是
telnet
,因此我想要一个可以使用不同协议的解决方案

另一个潜在的限制是关于Python版本,它必须与Python 2.5-2.7一起工作,即使客户端和服务器运行不同的版本


我应该用什么,请建议只有当你有成功的经验,否则我也可以谷歌;)

我想说,在您的案例中,沟通两个不同python进程的最简单方法是使用。我最近在一个小项目中使用了它,它非常有效地让我专注于我想要发送/接收的信息,而不是正确地编码/解码它

我建议您使用v3,因为根据源代码中的
tox.ini
文件,v4没有针对Python2.5进行测试,因此您可能会遇到一些问题


关于网络,这个库负责套接字本身,因此对telnet或ssh没有任何明确的支持(尽管TODO列表中有使用paramiko的选项)。Hene,您可能需要像这样依赖ssh隧道。

作为python 2.6+的部分解决方案,您可以看看(目前正在开发中),我们刚刚添加了对通过管道的反应堆驱动字节通信的支持(需要一个允许select.select管道文件描述符的平台,即不是Windows)。这允许通过管道或标准输入/标准输出链接到VPy ORB。有关如何将其与ssh一起使用的示例,请参见此

VersionPython需要Python2.6+或3.x,因此不幸的是不能与2.5一起使用。

支持可插拔协议和传输,但它还不支持SSH(或任何其他类似套接字的传输)。这是一个稳定但相当新的项目——尤其是客户机逻辑需要一些认真的工作


至于您最初的问题,在我熟悉的序列化程序中(主要是您在spyne网站上看到的),最适合通过流传输的是MessagePack,因为它支持类文件对象上的迭代器(也称为流反序列化)接口。

问题是我无法打开远程系统上的任何端口,连接到它的唯一方法是使用SSH。请记住,如果您没有得到任何对您有用的答案,您可以提供奖励。