是否有从Ruby on Rails Web服务器运行python脚本的常规方法?

我有一个Ruby on Rails网站,当前已部署到Heroku(我可以部署到AWS或可能的任何地方)。

我想让人们上传并在某些页面请求上执行任意python脚本(我们对此进行了安全性审查)。 python脚本的运行时间应相对较短(几秒钟即可),主要用于解析或处理数据。理想情况下,我们将允许用户以任何语言上载脚本,但是python是目前最重要的。

最佳答案

有几种方法可以做到这一点。最明显的一个方法是用Python编写另一个Web服务,但这并不优雅。另一个解决方案:

安装rubypython gem。

然后,您可以执行以下操作:

require 'rubypython'
RubyPython.start
my_python_module = RubyPython.import('my.python.module')
value = my_python_module.my_python_function().rubify
RubyPython.stop


您可以在rubypython documentation pages上查看更多信息。

第三种选择是通过IO.popen简单地将Python封装并以任何可执行文件的身份执行。

10-06 05:22