如何从ruby中调用shell中运行的python。实际上我需要ruby来与在shell中的python下运行的一些app进行通信。所以我需要ruby在cmd中调用python(命令'python')然后在python环境下导入库(命令'import xyz'),然后运行这个导入库的函数(例如'xyz.showdate()') ,当然得到结果。
我尝试使用IO.popen和Open3.popen3函数来实现这一点,但我做错了。
实际上我在轨道上使用jruby,但我认为它应该与ruby相同。
答案 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
打印日期,您可以收集标准输出以获得结果。
但是,这可能不是一个好主意。