2017-08-09 7 views
1

私は、両方の言語(R/Python)が別の言語からモジュールを呼び出すための複数のライブラリがあることを知っています。私はコードのバックエンドをPythonで走らせる方法を探しています。これは主に.pycとスピードのため、またフロントエンドがRで走っているので、Shinyアプリケーションを持つことができます。私はバックエンドのためのpythonマシンを作る方法を見つけることができませんでした。もし誰かがR/Rstudioでそれを行う方法を知っていれば、応答してください。PythonをRから実行する

+1

この質問はかなり広いようです。 Pythonは何を実行するはずですか? Webアプリケーションプロジェクトが必要な場合は、Django(Python)のようなものを使用し、R ShinyアプリケーションをWebアプリケーションとして含めることができます。しかし、もう一度、正確に何をしようとしているのかを説明してください。 – Jon

+0

'rPython'をチェックアウトしたいかもしれません –

答えて

-1

あなたが探しているものは、以下のコードですと信じています。それはR.でPythonスクリプトを実行します

system('python3 file_name.py') 
+0

これは"バックエンド "問題を解決しますか? OPの質問から、Pythonで動作する必要のあるバックグラウンドアクティビティ(サーバーなど)があり、Rで実行する必要のあるWebアプリケーションのみがあるようです。このソリューションはスクリプトではうまく動作しますが、このソリューションはいくつかの問題に遭遇します。 – Jon

+0

お返事ありがとうございます。実際に引数を渡すことができないのでsystem()を使用するだけでは不十分です。単にスクリプトを実行するだけです。あなたが知っている別の方法がある場合は、私に知らせてください。 –

0
私はそれの速度に何か良いベンチマークを持っていないが、 reticulateパッケージは使用せずにしてPythonスクリプトからデータを渡すために、私が知っている最良の方法です

ウェブサーバー。 PythonオブジェクトをRにインポートし、Rオブジェクトのように動作し、引数を受け取り、値を返すことができます。

1つのファイルから関数を実行したかったときに、いくつかの問題がありました。それは、インポートステートメントと互いに呼び出された複数の機能に問題がありました。うまくいったのは、importステートメントを別々に実行し(以下のsapply()のステートメントを参照)、Pythonスクリプトのすべてのコードを単一のオブジェクトにマージすることでした。これがうまく働いていたし、約早く通常のpythonでそれを実行しているように見えた(私は本当のベンチマークを行っていないが)

library(reticulate) 
use_python(python = '/usr/bin/python') # optionally specify python location 

# Import statements are here, not in the file 
sapply(c("import mysql.connector", "import re"), py_run_string) 

# File contains only the definition of class MismatchFinder 
source_python("python_script.py") 

# Now we can call on that python object from R 
result <- MismatchFinder()$find_mismatch(arg1, arg2) 

私の印象は、あなたのPythonコードをモジュールに作成している場合、それは単純かもしれないということですそれをロード:py_module <- import_from_path('my_python_module', path = 'PATH')しかし、私はそれを試みていない。

希望すると便利です。

関連する問題