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脚本中,因为这是我最初测试它的方式,没有修改它,很抱歉,如果这让人困惑……
如果你还有什么要说的或者要纠正我的话,谢谢大家多发一些帖子。我会留意这篇文章的:)