0

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

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

实际上我在rails上使用jruby,但我猜它应该和ruby一样。

4

1 回答 1

2

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

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

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

然后,您将安排您的 ruby​​ 脚本调用以下命令:

python path/to/python-script.py

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

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

于 2012-09-02T20:59:54.157 回答