通过crontab运行时,R找不到某些包

时间:2013-02-10 01:58:20

标签: r amazon-ec2 crontab

尝试使用Rscript通过crontab运行我的R脚本时出现问题。

以下命令在命令行中运行时工作正常

Rscript /var/www/html/sent/sentiment/code/parse.r

但是crontab

中的以下行
*/5 * * * * Rscript /var/www/html/sent/sentiment/code/parse.r > /var/www/html/sent/sentiment/code/backup.log 2>&1

将在日志中返回以下错误

Error in library(twitteR) : there is no package called 'twitteR'
Execution halted

为什么在使用cron运行时Rscript无法找到软件包? 如何让crontab'看到'我的R包。

任何提示都非常赞赏。

2 个答案:

答案 0 :(得分:4)

正如评论中所建议的那样,问题可能是您和您的crontab正在使用不同的R安装。

要检查是否是这种情况,请自行运行which Rscript和crontab。

如果它们不同(我怀疑),当您从crontab调用它时,可以使用相应Rscript的完整路径。更永久的解决方案需要设置环境变量。

答案 1 :(得分:1)

很可能是你的.libPath()设置 - 这就是我使用Debian / Ubuntu软件包来使用系统范围而非每个用户设置的原因。

要检查,请运行同样的crontab

 print(.libPaths())
 print(installed.packages())

差异应该变得清晰。我想我之前在这里回答了一个几乎相同的问题。