【问题标题】:How can I call erlang from Python? [duplicate]如何从 Python 调用 erlang? [复制]
【发布时间】:2010-12-13 15:46:31
【问题描述】:

可能重复:
best way to integrate erlang and python

要使用 erlang 的一些强大功能,我应该从 Python 中调用 erlang 程序,我该怎么做呢?谢谢~

【问题讨论】:

  • 您能描述一下您要解决的问题吗?我正在努力想一个由 Python 应用程序管理的 Erlang 应用程序的有效用例。您还指的是哪些强大的功能?

标签: python erlang


【解决方案1】:

在 Erlang 中,您可以使用端口与外部世界通信,端口为外部程序提供面向字节的接口。

您还可以查看erlport,这是一个实现 Erlang 端口协议的 python 库。

【讨论】:

  • 我找到了从erlang调用python的方法,但我不知道如何从python调用erlang。即使是erlport,看起来也只提供从erlang调用python的方法。跨度>
  • 好的。您可以尝试的另一件事是使用“runerl”命令将 Erlang 虚拟机作为守护进程运行。这将在“/tmp”中创建两个命名管道,用于读写目的(erlang.pipe.1.r 和 erlang.pipe.1.w)。使用 python,您可以将命令(就像您在 erlang 命令行中使用的那样)写入命名管道,VM 将执行它,您可以从读取的命名管道中获取输出。希望这是你需要的。
【解决方案2】:

看看BERT-RPC。它允许您执行remote procedure calls 和强制转换、请求数据(包括流式传输)。在那里,您会找到适用于某些语言(包括 Python)的各种库。

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

【讨论】:

    【解决方案3】:

    我们主要使用 JSON over HTTP 来执行此操作。在某些情况下,您可能希望使用更健壮的消息传递协议(例如 AMQP 和 RabbitMQ),但 Python 很少有充分的理由直接使用 Erlang 分发协议。有时我们使用 erlport 来序列化事物而不是 JSON,此时性能更为重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 2016-03-30
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多