Встраивать Python CLI в процесс Ruby?

В рамках более крупного проекта я пытаюсь «встроить» интерактивный интерпретатор Python в процесс Ruby. Я хотел бы иметь возможность делать что-то вроде следующего:

$ irb
irb(main):001:0> pipe = IO.popen("python", "w+")
=> #<IO:0x7f3dba4977e0>
irb(main):002:0> pipe.puts "print 'hello'"
=> nil
irb(main):003:0> pipe.gets
=> 'hello\n'

К сожалению, получает , похоже, зависает, а не возвращает какие-либо выходные данные процесса Python. Я пробовал варианты этой процедуры с open3 , используя режим r + вместо w + и парочку других второстепенных параметров ( python -u среди них), но безуспешно

Есть ли способ установить интерактивную связь с оболочкой Python из Ruby - по сути, «обернуть» Python CLI? Я использую Ruby 1.8.7 (2010-06-23 patchlevel 299) и Python 2.6.6 на машине x86_64, хотя, надеюсь, решения будут переносимы (иш) между версиями Python.

5
задан Tim 9 August 2011 в 18:31
поделиться