2010-12-13 38 views
7

可能重复:
best way to integrate erlang and python如何从Python调用erlang?

要使用Erlang的一些强大的功能,我应该叫在Python程序二郎,我怎么能这样做?谢谢〜

+0

你能提供你正试图解决的问题的描述吗?我正在努力想到一个由Python应用程序管理的Erlang应用程序的有效用例。你指的是什么强大的功能? – dsmith 2010-12-15 20:52:32

回答

8

在Erlang中,你可以使用端口为外部世界提供一个面向字节接口的外部程序。

你也可以看看erlport这是一个实现Erlang端口协议的Python库。

+0

我发现从erlang调用python的方式,但我不知道如何调用erlang fron python。即使erlport,看起来只提供了从erlang调用python的方式。 – Suge 2010-12-13 03:48:51

+0

好的。你可以尝试的另一件事是使用“runerl”命令将Erlang虚拟机作为守护进程运行。这将在“/ tmp”中创建两个用于读写目的的命名管道(erlang.pipe.1.r和erlang.pipe.1.w)。使用python,你可以将命令(如你在erlang命令行中使用的)写入命名管道,虚拟机将执行它,你可以从读命名管道获取输出。希望这是你所需要的。 – Arunmu 2010-12-13 04:04:49

3

看看BERT-RPC。它允许您执行remote procedure calls并强制转换,请求数据(包括流式传输)。在那里你可以找到包括Python在内的一些语言的各种库。

在您的情况下,您可能只需使用ernie设置erlang服务器并通过python-bertrpc客户端与其通信。这两个项目都有记录。

1

我们主要使用JSON over HTTP来做到这一点。在某些情况下,您可能希望使用更强大的消息传递协议(例如,带有RabbitMQ的AMQP),但Python很少有直接说出Erlang分发协议的好理由。有时我们使用erlport来序列化事物而不是JSON,当时性能更重要一些。