2010-12-13 21 views
7

Olası Çoğalt:
best way to integrate erlang and pythonPython'dan erlang'ı nasıl arayabilirim?

, ben bunu yapabilirim nasıl Python gelen erlang programını çağırmalıdır erlang bazı güçlü özelliklerini kullanmak için? Teşekkürler ~

+0

Eğer çözmeye çalıştığınız sorunun açıklamasını verebilir misiniz? Bir Python uygulaması tarafından yönetilen bir Erlang uygulaması için geçerli bir kullanım durumu düşünmek için mücadele ediyorum. Hangi güçlü özelliklerden bahsediyorsunuz? – dsmith

cevap

8

Erlang'da harici programla bayt yönelimli bir arabirim sağlayan bağlantı noktalarını kullanarak dış dünya ile iletişim kurabilirsiniz.

Ayrıca, Erlang bağlantı noktası protokolünü uygulayan bir python kitaplığı olan erlport'a da bakabilirsiniz.

+0

I'v erlang gelen piton çağırmak için bir yol buldum ama python.Even fron erlport erlang aramaya nasıl bilmiyorum, sadece erlang gelen piton çağırmak için bir yol temin görünüyor. – Suge

+0

ok. Deneyebileceğiniz diğer bir şey de Erlang Virtual makinesini "runerl" komutunu kullanarak bir daemon olarak çalıştırmaktır. Bu, okuma ve yazma amacıyla "/ tmp" de iki adında yöneltilmiş boru oluşturacaktır (erlang.pipe.1.r ve erlang.pipe.1.w). Python'u kullanarak (erlang komut satırında kullandığınız gibi) komutu verilen boruya yazabilirsiniz, VM bunu çalıştıracaktır ve çıktıyı okunan okuma borusundan alabilirsiniz. Umarım ihtiyacın olan budur. – Arunmu

3

BERT-RPC'a bakın. remote procedure calls ve dökümler, veri istekleri (akış dahil) gerçekleştirmenizi sağlar. Orada Python dahil olmak üzere bazı diller için çeşitli kütüphaneler bulacaksınız.

Sizin durumunuzda ernie kullanarak erlang sunucusunu kurabilir ve python-bertrpc istemcisi ile iletişim kurabilirsiniz. Her iki proje de belgelenmiştir.

1

Bunu yapmak için çoğunlukla HTTP üzerinden JSON kullanıyoruz. Bazı durumlarda, daha sağlam bir mesajlaşma protokolü (RabbitMQ ile örneğin AMQP) kullanmak isteyebilirsiniz, ancak Python doğrudan Erlang dağıtım protokolü konuşmak için nadiren iyi bir sebebi var. Bazen performans biraz daha önemli olduğunda, JSON yerine bir şey serileştirmek için erlport kullanıyoruz.

İlgili konular