0

シェルで実行されているPythonをrubyから呼び出すにはどうすればよいですか。実際、シェルのpythonで実行されているアプリと通信するにはrubyが必要です。したがって、Rubyでcmdでpython(コマンド'python')を呼び出してから、python環境でライブラリをインポート(コマンド' import xyz')し、このインポートされたライブラリの関数を実行する必要があります(たとえば、'xyz.showdate()') 、そしてもちろん結果を取得します。

これを実現するためにIO.popen関数とOpen3.popen3関数を使用しようとしましたが、何か問題があります。

実はレールにjrubyを使っていますが、rubyも同じだと思います。

4

1 に答える 1

2

あなたはおそらくこれをやりたくないでしょう.おそらくルビーで直接結果を得ることができるのに、これはあなたのルビースクリプトを過度に複雑にするでしょう.

ただし、そのようにすることにした場合は、必要なことを行う python スクリプトを作成し、それを ruby​​ スクリプトから実行できます。

# python-script.py 
import xyz
if __name__ == '__main__':
    xyz.showdate()

次に、Ruby スクリプトが次のコマンドを呼び出すように調整します。

python path/to/python-script.py

日付xyz.showdateを出力すると、標準出力を収集して結果を取得できます。

しかし、繰り返しになりますが、それはおそらく良い考えではありません。

于 2012-09-02T20:59:54.157 に答える