【问题标题】:How to Run a Python Script from a Rails Application?如何从 Rails 应用程序运行 Python 脚本?
【发布时间】:2017-01-01 09:47:01
【问题描述】:

我现在正在开发一个 Rails 应用程序,只要在我们的应用程序主页上单击一个按钮,它就需要运行一个 Python 脚本。我正在尝试找出一种让 rails 运行此脚本的方法,但到目前为止我的两次尝试都失败了。

我的第一次尝试是使用 exec(..) 命令来运行“python script.py”,但是当我这样做时,它似乎运行了文件但终止了 rails 服务器,所以我需要手动重启每次都这样。

我的第二次尝试是安装 gem “RubyPython”并从那里尝试,但是一旦我运行它,我不知道该怎么做。我找不到任何使用它来运行或加载的人的例子一个python脚本。

对此的任何帮助将不胜感激。

【问题讨论】:

    标签: python ruby-on-rails ruby


    【解决方案1】:

    以下是执行 shell 脚本的方法

    `python pythonscript.py`
    

    system( "python pythonscript.py" )
    

    exec(" python pythonscript.py")
    

    exec 通过运行给定的外部命令替换当前进程。
    返回无,当前进程被替换,不再继续。

    【讨论】:

      【解决方案2】:

      exec 用新进程替换当前进程。您想将其作为子进程运行。有关概述,请参阅When to use each method of launching a subprocess in Ruby;我建议在简单的过程中使用反引号,或者在需要更多控制时使用 popen/popen3

      或者,您可以使用 Ruby-Python 桥 gem rubypython 从 Ruby 本身执行 Python(特别是如果您将重复执行相同的 Python 函数)。为此,您需要将您的脚本制作成适当的 Python 模块,在 Rails 应用程序启动时启动桥接器,然后使用 RubyPython.import 将您的模块引用到您的 Ruby 代码中。 gem 的 GitHub 页面上的示例非常简单,应该足以满足您的目的。

      【讨论】:

        猜你喜欢
        • 2020-10-26
        • 2011-03-16
        • 2021-03-07
        • 1970-01-01
        • 2023-01-30
        • 2021-01-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多