Мост Ruby to Python - PullRequest
       31

Мост Ruby to Python

8 голосов
/ 16 октября 2008

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

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

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

Заранее спасибо.

Ответы [ 5 ]

4 голосов
/ 16 октября 2008

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

3 голосов
/ 16 октября 2008

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

2 голосов
/ 16 октября 2008

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

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

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

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

1 голос
/ 01 февраля 2011

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

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

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

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

1 голос
/ 01 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...