2010-12-13 10 views
7

Duplicar posible:
best way to integrate erlang and python¿Cómo puedo llamar a Erlang desde Python?

utilizar algunas características de gran alcance de Erlang, debería llamar a Erlang programa de Python, ¿Cómo puedo hacer eso? Gracias ~

+0

¿Puede proporcionar una descripción del problema que está tratando de resolver? Estoy luchando por pensar en un caso de uso válido para una aplicación Erlang administrada por una aplicación Python. ¿A qué poderosas características te refieres también? – dsmith

Respuesta

8

En Erlang, puede comunicarse con el mundo externo utilizando puertos que proporcionan una interfaz orientada a bytes al programa externo.

También puede echar un vistazo a erlport que es una biblioteca de python que implementa el protocolo de puerto de Erlang.

+0

He encontrado la manera de llamar a python desde erlang, pero no sé cómo llamar a erlang fron python. Incluso el erlport, parece que solo proporciona el camino para llamar a python desde erlang. – Suge

+0

bien. Otra cosa que puedes intentar es ejecutar la máquina virtual de Erlang como daemon usando el comando "runerl". Esto creará dos canalizaciones con nombre en "/ tmp" para fines de lectura y escritura (erlang.pipe.1.r y erlang.pipe.1.w). Usando python puedes escribir el comando (como lo usas en la línea de comando de erlang) en la tubería con nombre, la máquina virtual lo ejecutará y podrás obtener la salida de la tubería llamada de lectura. Espero que esto es lo que necesitas. – Arunmu

3

Eche un vistazo a BERT-RPC. Le permite realizar remote procedure calls y conversiones, solicitar datos (incluida la transmisión). Allí encontrará varias bibliotecas para algunos idiomas, incluido Python.

En su caso, puede configurar el servidor erlang usando ernie y comunicarse con él a través del cliente python-bertrpc. Ambos proyectos están documentados.

1

Principalmente usamos JSON sobre HTTP para hacer esto. En algunos casos, es posible que desee utilizar un protocolo de mensajería más robusto (por ejemplo, AMQP con RabbitMQ), pero rara vez hay una buena razón para que Python hable directamente el protocolo de distribución de Erlang. A veces utilizamos erlport para serializar cosas en lugar de JSON, cuando el rendimiento es un poco más importante.