2

Python GUI を介して R スクリプトを実行しようとしています。

R コンソールで、rgl パッケージをインストールしました。Windows-7 では、R は ProgramFiles\R... フォルダーではなく、現在のユーザー フォルダーにパッケージをインストールします。

私は簡単なdemo.rスクリプトを持っています:

library('rgl')
example('plot3d')

次のコマンド ラインで、新しくインストールした rgl パッケージを使用して demo.r スクリプトを実行すると、次のようになります。

"c:\ProgramFiles\R\R..\bin\Rscript.exe" demo.r

それは完全に機能します!

ここで、次のスクリプトを使用して Python から実行すると、次のようになります。

import subprocess
out = subprocess.check_output([r"c:\ProgramFiles\R\R..\bin\Rscript.exe", "demo.r"])

rgl が見つからない/インストールされていないというエラーが表示されます。

demo.r に単純な print to screen コマンドしか含まれていない場合、動作することを確認しました。つまり、Python から起動すると、Rscript.exe はユーザー フォルダーの下の rgl パッケージの場所を認識できなくなります。

rgl パッケージ フォルダーをユーザー フォルダーから ProgramFiles\R... フォルダーにコピーすると、機能します。

Rスクリプトを実行し、ユーザーフォルダーからパッケージを使用してmake pythonを指定する方法を知っている人はいますか?

ありがとう

4

2 に答える 2

0

lanucher.bat を作成する方が良いと思います

R_PATH :C:/Program Files/R/R バージョン

DEMO_PATH : demo.r パス

@echo off
C:
PATH R_PATH;%path%
cd DEMO_PATH
Rscript demo.R 
exit

launcher.bat をLAUNCHER_PATHに保存します

今pythonで:

import subprocess
out = subprocess.check_output('LAUNCHER_PATH\launcher.bat')

PS : Python スクリプトにいくつかの引数を追加すると、Python コードを変更せずに launcher.bat に簡単に追加できます。

 Rscript demo.R arg1 arg2
于 2012-11-30T10:59:51.830 に答える
0

R_USERサブプロセスで環境変数を設定する必要があります。これは、R が以下を設定するときに参照し.Library.siteます。

import subprocess, os
my_env = os.environ.copy()
my_env["R_USER"] =  my_env["HOMEPATH"]
subprocess.check_output([r"c:\ProgramFiles\R\R..\bin\Rscript.exe", "demo.r"], env=my_env)

それは私のディレクトリが存在my_env["HOMEPATH"]する場所であるため、私にとってはうまくいくことに注意してください。ユーザー ライブラリの場所に応じて\R\win-library\、何かを使用する必要がある場合があり ます (詳細については、R を参照してください)。任意の言語 (Powershell、Node など) からサブプロセスで R を起動する場合も、同じロジックが適用されます。os.path.join(my_env["HOMEPATH"],"documents")?library

于 2016-08-12T21:43:06.830 に答える