我有这里描述的确切问题: Perl can't find module when run from cron.daily,但我的问题适用于从crontab运行的perl脚本。
在我的情况下,错误消息是:
May 24 22:12:02 trackcam3 test_cron: Can't locate Image/Grab.pm in @INC (you may need to install the Image::Grab module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/arm-linux-gnueabihf/perl5/5.24 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at /home/darren/upload_image.pl line 33, <DATA> line 1.
May 24 22:12:02 trackcam3 test_cron: BEGIN failed--compilation aborted at /home/darren/upload_image.pl line 33, <DATA> line 1.
链接上的解决方案都为路径添加了一些东西。我想知道是否可以将模块移动或复制到crontab中的perl脚本时可以找到的位置。
作为故障排除的一部分,我已经使用与终端相同的PATH加载了cron,但这还不足以让我们找到perl模块。
缺少的模块位于~/perl5/lib/perl5
,不在@INC
位于
的相同perl脚本调用模块/usr/lib/arm-linux-gnueabihf/perl5/5.24/Image/Magick
它应该在别的地方吗?目前/usr/lib/perl5
是空的。链接中的OP在链接中询问了相同的问题但未收到答案。
答案 0 :(得分:0)
尝试:
use lib glob( '~/perl5/lib/perl5' );
use Image::Grab;
use lib
必须在许多use
模块之前。
答案 1 :(得分:-1)
按照@haukex的以下评论中的链接获得完整的解释。