我有一个R脚本,可以制作几个情节。我希望能够从python执行这个脚本。
我第一次尝试:
import subprocess
subprocess.call("/.../plottingfile.R", shell=True)
这会导致以下错误:
/bin/sh: /.../plottingfile.R: Permission denied
126
我不知道126号是什么意思。我的所有文件都在桌面上,因此我认为不需要任何特殊权限?我认为这个错误可能与cwd=none有关,但我更改了这个,仍然有一个错误。
接下来我尝试了以下操作:
subprocess.Popen(["R --vanilla --args </.../plottingfile.R>"], shell = True)
但这也给了我一个错误:
/bin/sh: Syntax error: end of file unexpected.
最近我试过:
subprocess.Popen("konsole | /.../plottingfile.R", shell = True)
这打开了一个新的konsole窗口,但没有运行R脚本。另外,我收到以下错误:
/bin/sh: /.../plottingfile.R: Permission denied
谢谢。
你试过
chmod u+x /pathTo/Rscript.R
吗?Shell错误126是一个执行错误。
拒绝的权限意味着您有一个特别的“权限问题”。
转到该文件并确保R/Python能够访问它。 我会先试试这个:
如果代码运行,请给它正确但不易访问的权限。
如果这不起作用,请尝试将R改为Rscript。
首先,确保您的plattingfile.R脚本位于可以访问的位置。通常是同一个目录。
我在网上看到有一个名为
RScript
的实用程序,它用于从命令行执行R
脚本。因此,为了运行脚本,您可以像这样使用python:这将在成功完成后返回
retcode
0。如果plottingfile.R返回某种输出,它将在STDOUT上抛出。如果它拉起一些图形用户界面,那么它就会出现。如果要捕获stdout和stderr,请按如下方式执行:
相关问题 更多 >
编程相关推荐