我有兴趣让一些 Python 代码在 Windows、Linux 和可能的其他平台上与一些 Ruby 代码对话。具体来说,我想从 Python 访问 Ruby 中的类并调用它们的方法、访问它们的数据、创建新实例等等。
一个明显的方法是通过 XML-RPC 或 CORBA 之类的方法,但我会对任何其他方法感兴趣。
其他人做了什么来让 Python 和 Ruby 的代码相互通信,无论是在同一系统上本地还是通过网络远程通信?
提前致谢。
好吧,您可以尝试命名管道或类似的东西,但我真的认为 XML-RPC 将是最令人头疼的方式。
请注意,我在这里不是根据个人经验说话,但我认为 JRuby 和 Jython(JVM 中的 ruby 和 python 实现)能够轻松地相互交谈,以及 Java 代码。你可能想调查一下。
这不是你想要的,但值得一读:embed Python interpreter in Ruby: this code's pretty old
http://www.goto.info.waseda.ac.jp/~fukusima/ruby/python/doc/index.html
或者:为什么,重写字节码
使用 JRuby/Jython 实现 Ruby/Python 互操作性? 有更多信息。注意:JRuby 和 Jython 没有对象兼容性,但 IronPython 和 IronRuby 有。
使用 Sinatra、Rails 或普通的旧 Rack 将 Ruby 类公开为 Web 服务。
使用 web.py、flask、Django 或 App Engine 将 Python 类公开为 Web 服务。
使用 HTTParty for Ruby 将 API 构建到 Python 类中。
使用 Python REST 库将 API 构建到 Ruby 类中。