1

我是 Python 新手。只是想知道python中有没有类似于ruby的drb的模块?像客户端可以使用drb服务器提供的对象吗?

4

6 回答 6

6

这通常称为“对象代理”,可以通过在此处浏览 Python 包索引的对象代理主题区域找到该区域中一些 Python 包的列表。

其中最古老和使用最广泛的是Pyro

于 2009-10-28T09:04:21.493 回答
2

Pyro做了我认为你在描述的事情(尽管我没有使用过 drb)。

从网站:

Pyro 是 PYthon 远程对象的缩写。它是一个完全用 Python 编写的先进而强大的分布式对象技术系统,旨在非常易于使用。再也不用担心编写网络通信代码了,使用 Pyro 时,您只需像往常一样编写 Python 对象。只需几行额外代码,一旦您将对象拆分到网络上的不同机器上,Pyro 就可以处理对象之间的网络通信。所有血腥的套接字编程细节都得到了处理,您只需调用远程对象上的方法,就好像它是本地对象一样!

于 2009-10-28T09:02:42.177 回答
1

标准的多处理模块可能会做你想做的事。

于 2009-10-28T08:44:02.887 回答
0

我不知道 drb 是什么,但从您提供的少量信息来看,它可能类似于Twisted 中的 Perspective Broker

介绍

假设您发现自己控制着线路的两端:您有两个需要相互通信的程序,并且您可以使用任何您想要的协议。如果您可以根据需要相互调用方法的对象来考虑您的问题,那么您很有可能可以使用 twisted 的 Perspective Broker 协议,而不是试图将您的需求硬塞到 HTTP 之类的东西中,或者实现另一个 RPC机制。

Perspective Broker 系统(缩写为 PB,产生了许多与三明治相关的双关语)基于几个核心概念:

序列化:获取相当任意的对象和类型,将它们转换为一大块字节,通过线路发送它们,然后在另一端重构它们。通过仔细跟踪对象 ID,序列化对象可以包含对其他对象的引用,并且远程副本仍然有用。

远程方法调用:对本地对象执行某些操作并导致方法在远程对象上运行。本地对象称为 RemoteReference,您可以通过运行它的 .callRemote 方法来做一些事情。

于 2009-10-28T07:05:51.717 回答
0

你看过 execnet 吗?

http://codespeak.net/execnet/

于 2009-10-28T08:43:58.523 回答
0

对于并行处理和分布式计算,我使用并行 python

于 2009-10-28T08:52:08.113 回答