【问题标题】:Ruby to Python bridgeRuby 到 Python 的桥梁
【发布时间】:2026-01-03 07:25:01
【问题描述】:

我有兴趣在 Windows、Linux 和可能的其他平台上让一些 Python 代码与一些 Ruby 代码对话。具体来说,我想从 Python 访问 Ruby 中的类并调用它们的方法、访问它们的数据、创建新实例等等。

一个明显的方法是通过 XML-RPC 或 CORBA 之类的方法,但我会对任何其他方法感兴趣。

其他人做了什么来从 Python 和 Ruby 获取代码相互通信,无论是在同一系统本地还是通过网络远程通信?

提前致谢。

【问题讨论】:

  • 我想要一些动机或解释您为什么需要这样做。

标签: python ruby interop


【解决方案1】:

好吧,你可以试试named pipes 或类似的东西,但我真的认为 XML-RPC 会是最让人头疼的方式。

【讨论】:

    【解决方案2】:

    请注意,我在这里不是根据个人经验说话,但我认为 JRuby 和 Jython(JVM 中的 ruby​​ 和 python 实现)能够轻松地相互交谈,以及 Java 代码。你可能想调查一下。

    【讨论】:

    • 这听起来很有趣,有人有这方面的经验吗?
    • 是的,我喜欢一切都在同一个 jvm 中运行的想法,并且在它们之间建立了这样的“本地”桥梁。有趣的建议,谢谢。
    【解决方案3】:

    这不是你想要的,但值得一读:在 Ruby 中嵌入 Python 解释器:这段代码已经很老了

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

    或者:为什么,重写字节码

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

    【讨论】:

      【解决方案4】:

      Using JRuby/Jython for Ruby/Python interoperability? 有更多信息。注意:JRuby 和 Jython 没有对象兼容性,但 IronPython 和 IronRuby 有。

      【讨论】:

        【解决方案5】:

        使用 Sinatra、Rails 或普通的旧 Rack 将 Ruby 类公开为 Web 服务。

        使用 web.py、flask、Django 或 App Engine 将您的 Python 类公开为网络服务。

        使用 HTTParty for Ruby 将 API 构建到您的 Python 类中。

        使用 Python REST 库将 API 构建到您的 Ruby 类中。

        【讨论】: