jas*_*cks 1 macos perl macports
我在macbook 10.6上使用安装在/ opt/local/bin中的perl 5.16.3的macports
jason-danckss-macbook:eg Jason$ which perl
/opt/local/bin/perl
Run Code Online (Sandbox Code Playgroud)
我正在测试AI附带的demo.pl文件:来自metaCPAN的Categorizer.pm.我安装了AI:通过CPAN随macports perl提供的分类程序:
试图运行它:
原版的:
./demo.pl /users/Jason/Desktop/Dropbox/capstone/capstone/notes/HTML/sock
Can't locate AI/Categorizer.pm in @INC (@INC contains: /sw/lib/perl5/5.10.0/darwin-thread-multi-
2level /sw/lib/perl5/5.10.0 /sw/lib/perl5/darwin-thread-multi-2level /sw/lib/perl5 /sw/lib/perl5
/darwin /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level
/System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0
/Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network
/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library
/Perl/Extras/5.10.0 .) at ./demo.pl line 21.
BEGIN failed--compilation aborted at ./demo.pl line 21.
Run Code Online (Sandbox Code Playgroud)
略微修改:use lib "/opt/local/lib/perl5/5.16.3";因为当我使用CPAN时,这是模块的写入位置(perl -MCPAN -e shell如果重要,我使用IDK)
jason-danckss-macbook:eg Jason$ ./demo.pl ../HTML/sock
Can't locate AI/Categorizer.pm in @INC (@INC contains: /opt/local/lib/perl5/5.16.3/darwin-thread-
multi-2level /opt/local/lib/perl5/5.16.3 /sw/lib/perl5/5.10.0/darwin-thread-multi-2level /sw/lib
/perl5/5.10.0 /sw/lib/perl5/darwin-thread-multi-2level /sw/lib/perl5 /sw/lib/perl5/darwin
/Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System
/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0
/Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network
/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library
/Perl/Extras/5.10.0 .) at ./demo.pl line 21.
BEGIN failed--compilation aborted at ./demo.pl line 21.
Run Code Online (Sandbox Code Playgroud)
检查它在正确的位置:
jason-danckss-macbook:eg Jason$ find /opt/local/lib/perl5 -name 'Categorizer.pm'
/opt/local/lib/perl5/site_perl/5.16.3/AI/Categorizer.pm
Run Code Online (Sandbox Code Playgroud)
我甚至试图使用诊断.我和perl都不能找到诊断.CPAN找不到它.我猜它是在最近的perl版本中删除的?
好的,所以我的计算机上有fink和macport,以及默认的perl安装.macports版本perl是$ PATH中第一个perl.在它最近出现之后,我对它很满意:5.16.3
我不知道或认为从多个位置读取模块是个坏主意.但是IDK.我不想想我可能需要做什么样的体操来解决这个问题.
有没有人遇到过这个?
我刚看了一下这个AI::Categorizer包,并且包含的demo.pl文件有一个硬编码的shebang,#!/usr/bin/perl所以我相信它正在尝试使用系统perl.
假设你还没有尝试改变这一行(第一行demo.pl)指向/opt/local/bin/perl那时我怀疑这样做会解决你的问题.
您也可以考虑将shebang设置为/usr/bin/env perl应该使用perl路径中的版本.另请参阅perlbrew,这可能是安装非系统版Perl的更好方法.
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |