2013-08-16 130 views
0

我想將我的Python代碼放入Ruby模塊並運行它,但我不知道如何將Python獨立腳本導入到Ruby中。以下是我的代碼:如何在Ruby中運行Python代碼?

Python代碼

import ystockquote 
import pprint 
pprint.pprint(ystockquote.get_all('GOOG')) 

紅寶石

module PythonInRuby 
require "rubypython" 

RubyPython.start # start the Python interpreter 

cPickle = RubyPython.import("cPickle") 
p cPickle.dumps("Testing RubyPython.").rubify 

RubyPython.stop # stop the Python interpreter 

的問題是RubyPython.startRubyPython.stop之間,我不知道如何導入Python文件。另一個問題是在這個模塊中運行Ruby的代碼是什麼?

+4

這可能是解決這個問題最複雜和最脆弱的方法。你爲什麼要這樣? –

+0

因爲我不知道如何使用Ruby語言獲取財務數據。 – user2668789

+2

在Python中創建腳本以獲取財務數據,並使用Ruby的子流程調用進行調用。更容易。 –

回答

1

這是一個完全過度的,過度複雜的方式來做到這一點,但這是怎麼回事。

說你的python模塊(文件)被命名爲googstock.py。它應該是這樣的:

import ystockquote 

def run(): 
    return ystockquote.get_all('GOOG') 

然後你的Ruby可以是這樣的:

RubyPython.start 

googstock = RubyPython.import('googstock') 
puts googstock.run().rubify #Get the stock data into Ruby 

RubyPython.stop 

今後雖然,嘗試剛開始在Ruby中從雅虎API的股票價值!它不是那麼難。

+0

@Lennart:謝謝。紅寶石嵌入我的腦中;) – Linuxios

+0

非常感謝,順便說一句,我如何在rails上運行這個ruby模塊? – user2668789

+0

@ user2668789:取決於您代管的位置。但爲此,我建議直接調用API。這不是生產準備就緒,而對於如此簡單的轉換,真的是一種選擇。 – Linuxios