Вопрос

Я заинтересован в том, чтобы какой-нибудь код Python взаимодействовал с каким-нибудь кодом Ruby в Windows, Linux и, возможно, на других платформах.В частности, я хотел бы получить доступ к классам в Ruby из Python и вызывать их методы, получать доступ к их данным, создавать новые экземпляры и так далее.

Очевидный способ сделать это - с помощью чего-то вроде XML-RPC или, возможно, CORBA, но меня были бы интересны любые другие подходы.

Что сделали другие люди, чтобы заставить код из Python и Ruby взаимодействовать друг с другом либо локально в одной системе, либо удаленно по сети?

Заранее благодарю.

Это было полезно?

Решение

Что ж, ты мог бы попробовать именованные трубы или что-то подобное, но я действительно думаю, что XML-RPC был бы самым безболезненным способом.

Другие советы

Пожалуйста, имейте в виду, что я не говорю здесь из личного опыта, но я полагаю, что JRuby и Jython (реализации ruby и python в JVM) могли бы легко общаться друг с другом, а также с кодом Java.Возможно, вы захотите разобраться в этом.

Это не то, что вам нужно, но стоит прочитать:встроить интерпретатор Python в Ruby:этот код довольно старый

http://www.goto.info.waseda.ac.jp /~fukusima/ruby/python/doc/index.html

или:зачем переписывать байт-коды

http://github.com/why/unholy/tree/master

Использование JRuby / Jython для взаимодействия Ruby / Python? имеет больше информации.Заслуживающий внимания:JRuby и Jython не имеют объектной совместимости, но IronPython и IronRuby имеют.

Предоставьте свои классы Ruby в качестве веб-сервисов, используя Sinatra, Rails или обычный старый Rack.

Предоставьте свои классы Python в качестве веб-сервисов, используя web.py, flask, Django или App Engine.

Используйте HTTParty для Ruby, чтобы встроить API в ваши классы Python.

Используйте библиотеку Python REST для встраивания API в ваши классы Ruby.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top