从ruby(rails)调用python shell应用程序

时间:2012-09-02 19:17:03

标签: python ruby

如何从ruby中调用shell中运行的python。实际上我需要ruby来与在shell中的python下运行的一些app进行通信。所以我需要ruby在cmd中调用python(命令'python')然后在python环境下导入库(命令'import xyz'),然后运行这个导入库的函数(例如'xyz.showdate()') ,当然得到结果。

我尝试使用IO.popen和Open3.popen3函数来实现这一点,但我做错了。

实际上我在轨道上使用jruby,但我认为它应该与ruby相同。

1 个答案:

答案 0 :(得分:2)

你可能真的不想这样做,当你可能直接在ruby中得到结果时,这会让你的ruby脚本过于复杂。

如果您决定采用这种方式,您可以创建一个python脚本来执行您需要的操作并从ruby脚本中运行它:

# python-script.py 
import xyz
if __name__ == '__main__':
    xyz.showdate()

然后安排你的ruby脚本调用以下命令:

python path/to/python-script.py

如果您的xyz.showdate打印日期,您可以收集标准输出以获得结果。

但是,这可能不是一个好主意。