是否有从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封装并以任何可执行文件的身份执行。