在Rails中运行Python脚本

Running a Python Script in Rails

我的问题可能相当简单:

  • 我应该把我制作的python脚本文件放在哪里,以便在Rails服务器上的Rails上运行?

  • 我怎么称呼剧本?(我正在查找路径目录)

我尝试在本地计算机上运行它,在本地计算机上我可以将文件存储在任何地方,但我真的希望遵循某种在企业服务器上执行此操作的良好约定。:

现在我把它放在拱门根部的脚本文件夹中。

该脚本将打印到std-out,因为Ruby在运行时会看到这个脚本。所以打印输出将被存储到一个变量中,然后我将使用一些函数来计算csv字符串字段,然后将其排序到相应的db bin中。

但我真的很难弄清楚文件放在哪里。在我的搜索中没有专门的搜索结果。要么真的很容易,我错过了什么,要么就是没人愿意这么做……

编辑:谢谢你的回复,但我说的肯定不太清楚,所以我编辑了子弹。

  • 我应该在哪里将python脚本(程序)放在Rails(文件夹)上?有没有一个文件夹我应该放它被认为是惯例。我以前在app/assets/python中使用过它,但在Rails尝试使用它时出错,就好像它是一个普通的样式文件一样。

  • 如果我将其存储为:script/python/do-it.py,并且我想将其命名为该文件位置的路径是什么?是像我写的那样还是因为我不能让它运行…

更重要的是……使用backticks对我来说是最好的,我想,我已经在本地Ruby测试文件上做了这项工作,但是我正试图在Rails上用最好的约定来做这项工作。问题是…我不知道这些惯例是什么…

所以简单地说,这有点像我所做的(为了隐私稍微改变一下)

1
2
3
4
5
6
7
<#% result = Array.new %>
<#% Thread.new do %>
  <#%= result = `python /home/me/RailsApp/script/py_file.py #{param} &` %>
<#% end %>
<p>
<#%= puts result %>
</p>

或者是?

1
2
3
4
5
6
7
<#% result = Array.new %>
<#% Thread.new do %>
  <#%= result = `python script/fixitfelix/py_file.py #{param} &` %>
<#% end %>
<p>
<#%= puts result %>
</p>

我要仔细检查一下,看我是否回答了自己的问题。

我不得不用线的东西。这个脚本会运行一段时间,并且在运行时会挂起整个服务器。


谢谢J柏拉图,我只想把这句话拼出来,让任何人都能找到这个确切的问题。

要运行一些py_test.py脚本,我将脚本放入:

1
lib/assets/py_test/py_test.py

然后跑过去:

1
result = `python lib/assets/py_test/py_test.py`

注意:我使用了反勾号内核方式。

因为我运行的python文件需要时间来工作,在这个文件中,如果我只是使用直接的反勾号代码,它会挂起服务器,直到脚本完成。我解决这个问题的方法是做一条线。我不确定这是否是最有效的方法,但目前为止,它能满足我的需要。在原始问题中,线程代码在上面。在代码块中,它位于注释掉的html.erb脚本中,因为这是我最初测试它的方式,没有修改它,很抱歉,如果这让人困惑……

如果你还有什么要说的或者要纠正我的话,谢谢大家多发一些帖子。我会留意这篇文章的:)