Calling Python from Ruby


I have a compiled Python library and API docs that I would like to use from Ruby.

Is it possible to load a Python library, instantiate a class defined in it and call methods on that object from Ruby?

9/9/2010 6:33:49 PM

Accepted Answer

This article gives some techniques for running Ruby code from Python which should also be applicable in the reverse direction (such as XML-RPC or pipes) as well as specific techniques for running Python code from Ruby. In particular rubypython or Ruby/Python look like they may do what you want.

9/9/2010 6:47:46 PM

It sounds like you would want to use something like Apache Thrift which allows either your python or your ruby code to be a server/client and call each other.

You can instantiate your objects in ruby and or in python based on your thrift definition. This is an example from the thrift website.

struct UserProfile {
    1: i32 uid,
    2: string name,
    3: string blurb
  service UserStorage {
    void store(1: UserProfile user),
    UserProfile retrieve(1: i32 uid)

Basically your ruby or python will be able to call store() and retrieve() and create UserProfile objects etc.

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow