Erlang与Python的最佳集成方式
怎样才能最好地把Erlang和Python结合起来呢?
我们需要在Erlang中调用Python的函数,同时也希望在Python中调用Erlang的函数。目前,我们正在尝试用SOAP作为这两种语言之间的中间层,但遇到了很多“兼容性不好的”麻烦。你能给我们一些建议,告诉我们怎样才能更好地进行整合吗?
2 个回答
11
根据我的经验,最好的选择是 erlport。
这个工具可以让你在Python中创建一个Erlang端口,前提是要遵循Erlang的端口协议。它解决了数据兼容性的问题,因为它实现了Erlang的外部数据格式。你可以在链接的页面上看到一个清晰的使用示例。
26
正如之前提到的,使用erlport,你可以在Erlang这边使用Erlang端口协议,以及term_to_binary和binary_to_term这两个函数。在Python这边,有一个低级的端口驱动Port,可以用来发送和接收来自Erlang的消息,还有一个更高级的协议处理器Protocol,它简化了从Erlang调用Python函数的过程。目前在Erlang这边还没有其他辅助接口,但未来可能会有。在examples目录中,你可以找到一些不同场景的示例代码。
如果你有任何关于ErlPort的问题,随时可以联系我。