Rscript执行错误:没有这个文件或目录。

4
Rscript的二进制文件已经可以使用,但是当我尝试使用它时,出现了以下错误:
Rscript helloworld.r

Rscript execution error: No such file or directory

如果仅使用 Rscript 命令,它会显示相应的帮助/用法信息。而 R CMD BATCH 命令则正常工作。我尝试在 R 代码开头添加 shebang 行,但无效。如下所示:
#!/sys_apps_01/R/R-3.2.0/bin/R
#!/sys_apps_01/R/R-3.2.0/bin/Rscript

你的操作系统是什么?which Rscript 返回什么? - nrussell
操作系统是RedHat 6,Rscript返回Rscript的用法(用法:/path/to/Rscript [--options] [-e expr [-e expr2 ...] | file] [args])。 - Sourabh Potnis
bash-4.1$ which Rscript /sys_apps_01/R/R-3.2.0/bin/Rscript - Sourabh Potnis
4个回答

3

就像你的情况一样,这是由于我移动了R(为了尝试在AWS Lambda函数中使用它)。

我转而对R本身进行了等效的调用:

./R --slave --no-restore --file=TheScript.R

这是最简单的,因为它不需要对Homebrew的符号链接进行任何修改。 - irritable_phd_syndrome

2
很有可能这是安装到(配置在)另一个目录后再移动的安装后。之后Rscript将无法找到(硬编码?)的R二进制文件。我刚刚遇到了同样的问题,通过重新安装R解决了它。
安德烈亚斯

3
是的,R已安装并被移动到其他位置。我如何从这个自定义位置使用R和RScript? - Sourabh Potnis

0

我遇到了同样的问题。在我的情况下,R是通过deb包首先安装在/usr/lib/R中的,然后我将该目录移动到/opt/R并定义了R_HOME为新目录,希望R会自动适应它,但事实证明,在bin/R中有硬编码路径/usr/lib/R。除非我更新路径,否则仅仅将R移动到另一个位置将会破坏安装。


0

在提供解决方案之前,我要先发出一个警告,这是自担风险的。然而,我遇到了同样的问题,并有以下解决方案:

假设你已经运行了make && make install,并将R安装到了/path/to/install/loc。一旦你将其移动到path/to/new/loc,R/Rscript就会抱怨找不到正确的文件/目录。

通过编辑path/to/new/loc/bin中的RRscript可执行文件,你可以将任何对/path/to/old/loc的引用更改为/path/to/new/loc。这对我有效,并且没有遇到任何进一步的问题。

正如以前提到的那样,最好通过configure脚本中的prefix=...或在make install后使用rhome=...参数来将R安装到所需位置。


你确定这个工作正常吗?我看到Rscript是$ file /opt/third/R/4.0.0/bin/Rscript /opt/third/R/4.0.0/bin/Rscript: ELF 64-bit LSB可执行文件,x86-64,版本1(SYSV),动态链接(使用共享库)。你怎么“更改引用”? - statquant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接