1

我正在尝试使用Finance::TickerSymbolsperl(ActiveState perl) 中的模块,由于 PPM 没有它,我在我的 minGW 控制台上运行 cpan 来安装它。安装很顺利,但是,minGW 似乎将模块安装在

C:\MinGW\msys\1.0\home\ar\.cpan\build\Finance-TickerSymbols-1.03\lib\Finance\

所以,当我运行我的 perl 代码时,我收到以下错误:

Can't locate Finance/TickerSymbols.pm in @INC(@INC contains C:/Perl64/site/lib C:/Perl64/lib .)

当然编译失败。我可以从 mingw 路径复制和粘贴 .pm,但这并不适用于所有情况。谁能建议如何解决这个问题。谢谢!

编辑:为其他模块运行安装以在 minGW 中提供安装的输出

Running install for module Finance::Curency::Convert
    Running make for J/JA/JANW/Finance-Currency-Convert-1.08.tgz
    CPAN: LWP::UserAgent loaded ok
    Fetching with LWP:
    ftp://ftp.perl.org/pub/CPAN/authors/id/J/JA/JANW/CHECKSUMS
    CPAN: Compress::Zlib loaded ok
    Checksum for /home/ar/.cpan/sources/authors/id/J/JA/JANW/Finance-Currency-Convert-1.08.tgz ok
    Scanning cache /home/ar/.cpan/build for sizes
    Deleting from cache: /home/ar/.cpan/build/GD-2.46 <24.0>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/Finance-TickerSymbols-1.03 <23.5>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/GDTextUtil-0.86 <23.4>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/GDGraph-1.44 <23.2>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/Date-Simple-3.03 <22.6>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/HTML-TableExtract-2.11 <22.4>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/Text-CSV-1.21 <22.2>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/ExtUtils-MakeMaker-6.59 <21.9>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/YAML-Syck-1.17 <19.1>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/Test-Inter-1.03 <18.2>10.0 MB>
    Deleting from cache: /home/ar/.cpan/build/Date-Manip-6.25 <18.0>10.0 MB>
    Finance-Currency-Convert-1.08/
    Finance-Currency-Convert-1.08/MANIFEST
    Finance-Currency-Convert-1.08/t/
    Finance-Currency-Convert-1.08/t/convert.t
    Finance-Currency-Convert-1.08/Makefile.PL
    Finance-Currency-Convert-1.08/Changes
    Finance-Currency-Convert-1.08/META.yml
    Finance-Currency-Convert-1.08/Convert.pm
    CPAN.pm: Going to build J/JA/JANW/Finance-Currency-Convert-1.08.tgz
    Checking if your kit is complete...
    Looks good
    Writing Makefile for Finance::Currency::Convert
    cp Convert.pm blib/lib/Finance/Currency/Convert.pm
    Autosplitting blib/lib/Finance/Currency/Convert.pm (blib/lib/auto/Finance/Currency/Convert)
    /bin/make -- OK
    Running make test
    /usr/bin/perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib','blib/arch')"t/*.txt
    t/convert....ok
    All tests successful.
    Files=1, Tests=8, 0 wallclock secs ( 0.03 cusr + 0.03 csys = 0.06 CPU)
    /bin/make/test --OK
    Running make install
    Installing /usr/lib/perl5/site_perl/5.8/auto/Finance/Currency/Convert/autosplit.ix
    Installing /usr/lib/perl5/site_perl/5.8/auto/Finance/Currency/Convert.pm
    Writing /usr/lib/perl5/site_perl/5.8/auto/Finance/Currency/Convert/.packlist
    Appending installation info to /usr/lib/perl5/5.8/msys/perllocal.pod
    /bin/make/install -- OK
4

1 回答 1

1

You need to go to the PPM and install the CPAN module.

Then, go to your command line, and run cpan. Then install Finance::TickerSymbols. ActiveState's cpan will check whether or not you need MinGW installed, and install it if necessary. After that, it will download and build the Finance::TickerSymbols module.

If that doesn't work, use the use lib pragma in your Perl script to specify the directory where these modules should be loaded from:

use lib qw(/usr/lib/perl5/5.8 /usr/lib/perl5/site_perl/5.8);

Yes, that's right, the module is actually in /usr/lib/perl5. If you look at your output, you'll see that the modules are built in C:\MinGW\msys\1.0\home\ar\.cpan\build\, but if you look at the end of the log, you'll see they're being installed in /usr/lib/perl5/site_perl/5.8

Running make install
Installing /usr/lib/perl5/site_perl/5.8/auto/Finance/Currency/Convert/autosplit.ix
Installing /usr/lib/perl5/site_perl/5.8/auto/Finance/Currency/Convert.pm
Writing /usr/lib/perl5/site_perl/5.8/auto/Finance/Currency/Convert/.packlist
Appending installation info to /usr/lib/perl5/5.8/msys/perllocal.pod
/bin/make/install -- OK

The final thing you can do (if nothing else works) is switch to Strawberry Perl. This comes with everything you need to use the CPAN modules. It's what Larry Wall uses. Strawberry Perl has no trouble installing that module from the CPAN archive.

于 2011-10-03T19:34:37.047 回答