我正在尝试使用打包的R二进制文件和库(未安装)在AWS EC2实例的命令行上运行R脚本-重点是测试脚本以将其部署到AWS Lambda。我遵循了这些指示。这些说明用于将所有R二进制文件和库打包到一个zip文件中,并将所有内容移动到Amazon EC2实例进行测试。我解压缩了新计算机上的所有内容,在计算机上运行了'sudo yum update',然后将R的环境变量设置为指向正确的位置:
export R_HOME=$HOME
export LD_LIBRARY_PATH=$HOME/lib
注意:$ HOME等于/ home / ec2-user。
我创建了这个hello_world.R文件进行测试:
#!/home/ec2-user/bin/Rscript
print ("Hello World!")
但是当我运行这个:
ec2-user$ Rscript hello_world.R
我收到以下错误:
Rscript execution error: No such file or directory
所以我检查了路径,但是一切都检查了:
ec2-user$ whereis Rscript
Rscript: /home/ec2-user/bin/Rscript
ec2-user$ whereis R
R: /home/ec2-user/bin/R /home/ec2-user/R
但是,当我尝试在命令行使用Rscript评估表达式时,我得到了:
ec2-user$ Rscript -e "" --verbose
running
'/usr/lib64/R/bin/R --slave --no-restore -e '
Rscript execution error: No such file or directory
即使我的R_HOME变量设置为'/ home / ec2-user',Rscript似乎仍在默认位置'/ usr / lib64 / R / bin / R'中寻找R:
ec2-user$ echo $R_HOME
/home/ec2-user
我发现了一些支持,但是找不到解决我特定问题的方法。有人建议重新安装R,但我的理解是,就Lambda而言,所有内容都必须独立存在,因此我在单独的EC2实例上安装了R,然后将其打包。我应该提及的是,在使用软件包管理器安装R的计算机上,一切正常。
解决方案:在答案中张贴我的解决方案。
它以为它在盯着你看:
ec2-user$ whereis R
R: /home/ec2-user/bin/R /home/ec2-user/R
是您放置R的位置-但是它是为/预期而构建的:
ec2-user$ Rscript -e "" --verbose
running
'/usr/lib64/R/bin/R --slave --no-restore -e '
这些路径不一样。真正的错误可能是您的假设,即您可以将已构建和配置的R安装重新定位到其他目录。你不能
您可以为新(已知)路径构建R并进行安装。在配置路径和安装路径相同的系统上,一切都很好:
$ Rscript -e "q()" --verbose
running
'/usr/lib/R/bin/R --slave --no-restore -e q()'
$
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句