无法找到Image / Info.pm模块错误

时间:2013-05-09 04:50:58

标签: perl perl-module

我正在尝试获取特定文件中图像的分辨率,宽度和高度。

我有以下代码。

#use strict;
use Image::Info qw(image_info dim);
use File::List;
#perl2exe_include Image::Info::JPEG;
#perl2exe_include PerlIO;       

my $file  = <ImageFilePath>;  
my $info = image_info($file);            
my $res = $info->{resolution};                
print "$$res[0]\n";                  

我有Perl版本5.16.3

我收到以下错误:

Can't locate Image/Info.pm in @INC (@INC contains: c:\program files\Perl\lib c:/program files/Perl/site/lib c:/program files/Perl/lib .) at Img_Res.pl line 3.
BEGIN failed--compilation aborted at Img_Res.pl line 3.

任何人都可以给我解决方案吗?

2 个答案:

答案 0 :(得分:3)

从问题的代码部分我得出结论,你正在尝试使用Perl2EXE创建一个可执行文件,因为你正在使用该行

#perl2exe_include Image::Info::JPEG; 

并假设您正在运行命令

perl2exe c:\somepath\somescript.pl -o somescript.exe

@James Green的答案在某种程度上是正确的,但是它不完整(因为未能解释他的第二个要点)。

您需要安装“Image :: Info”以及您正在使用的任何其他模块(使用@James Green的答案)。

安装完成后,打开Windows资源管理器并找到刚刚安装的模块, 它通常位于以下文件夹中

"PERL_PATH\perl\lib"
"PERL_PATH\perl\site\lib"
"PERL_PATH\perl\vendor\lib"

找到模块后,将安装在上述3个位置之一。导航到安装Perl2EXE的位置。

PERL2EXE_PATH\perl2exe-XX.xx-Win\

使用您正在使用的当前版本的perl找到该文件夹​​。在您的情况下,文件夹名称应为

Win32-5.16.3 or Win64-5.16.3

打开文件夹并找到.conf文件。 使用标题libdir编辑该行。

libdir=perl-Win32/site/lib;perl-Win32/lib;perl-Win32/vendor/lib;.

确保所有perl / lib目录都包含在搜索路径中。 保存并重新运行命令。这应该有用。

有时甚至在所有这些之后perl2exe命令失败,这是由于程序能够解密qw命令的限制。 所以为了避免这种情况,请直接在代码中调用模块(例如:使用Module :: Name;)而不是使用qw。

答案 1 :(得分:2)

你需要确保你做了两件事:

  • 安装Image :: Info模块
  • 确保@INC包含安装模块的路径

我看到你在Windows上,这意味着你可能使用Strawberry Perl或ActiveState的Perl。如果您正在使用Strawberry Perl,您应该按照http://www.cpan.org/modules/INSTALL.html上的说明取得一些成功 - 我相信ActiveState有自己的内置包管理器,ppm,并且要开始使用它,你会想看看这里:http://www.activestate.com/activeperl/ppm-perl-modules