Подтвердить что ты не робот

Вызов Python из Ruby

У меня есть скомпилированная библиотека Python и документы API, которые я хотел бы использовать из Ruby.

Можно ли загрузить библиотеку Python, создать экземпляр класса, определенного в нем, и вызвать методы для этого объекта из Ruby?

4b9b3361

Ответ 1

В этой статье приведены некоторые методы для запуска Ruby-кода из Python, который также должен применяться в обратном направлении (например, XML-RPC или каналы), а также конкретные методы для запуска кода Python из Ruby. В частности, rubypython или Ruby/Python выглядят как они может делать то, что вы хотите.

Ответ 3

Похоже, вы хотели бы использовать что-то вроде Apache Thrift, которое позволяет вашему питону или вашему ruby-коду быть сервером/клиентом и звонить друг другу. http://thrift.apache.org/

Вы можете создавать объекты в рубине или на питоне на основе определения бережливости. Это пример веб-сайта бережливости.

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

В основном ваш ruby ​​или python смогут вызывать store() и retrieve() и создавать объекты UserProfile и т.д.

Ответ 4

Даже если вы можете сделать эту работу, вы можете подумать, является ли это лучшим архитектурным выбором. Вы можете напасть на всевозможные адские версии, пытаясь сохранить такого зверя.

Если вы действительно не можете найти эквивалентную библиотеку Ruby (или это большая инвестиция в Python, которую вы хотите использовать), рассмотрите возможность использования очереди (например, RabbitMQ) для реализации дизайна передачи сообщений. Затем вы можете сохранить свои Python-биты Python и ваши Ruby-биты Ruby и не пытаться поддерживать среду сборки Frankenstein.