Macos perl可以';我找不到已安装的模块,但CPAN可以,而且我可以找到它们。为什么可以';t perl?
我使用的是安装在MacBook10.6的/opt/local/bin中的perl 5.16.3提供的macportsMacos perl可以';我找不到已安装的模块,但CPAN可以,而且我可以找到它们。为什么可以';t perl?,macos,perl,macports,Macos,Perl,Macports,我使用的是安装在MacBook10.6的/opt/local/bin中的perl 5.16.3提供的macports jason-danckss-macbook:eg Jason$ which perl /opt/local/bin/perl 我正在测试metapan中AI:Categorizer.pm附带的demo.pl文件。我通过macports perl提供的CPAN安装了AI:Categorizer: 尝试运行它: 原件: ./demo.pl /users/Jason/Desktop/
jason-danckss-macbook:eg Jason$ which perl
/opt/local/bin/perl
我正在测试metapan中AI:Categorizer.pm附带的demo.pl文件。我通过macports perl提供的CPAN安装了AI:Categorizer:
尝试运行它:
原件:
./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.
略微修改为:use lib”/opt/local/lib/perl5/5.16.3”代码>因为当我使用CPAN时,模块就是在这里编写的(如果需要的话,我使用perl-MCPAN-eshell
IDK)
在正确的位置检查它:
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
我甚至试着使用诊断工具。我和perl都找不到diagnostic.pm。CPAN找不到它。我猜它在最近的perl版本中被删除了
好的,我的计算机上有fink和macports,还有一个默认的perl安装。macports版本perl是在$PATH中找到的第一个perl。我对它没意见,毕竟它是最近才出现的:5.16.3
我不知道也不认为从多个地方阅读模块是个坏主意。但是IDK。我不想去想我需要做什么样的体操来解决这个问题
以前有人遇到过这种情况吗?我刚刚查看了AI::Categorizer
包,其中包含的demo.pl
文件有一个硬编码的shebang#/usr/bin/perl
,所以我相信它正在尝试使用系统perl
假设您还没有尝试将这一行(demo.pl的第一行)更改为指向/opt/local/bin/perl
,那么我怀疑这样做可以解决您的问题
您还可以考虑将SeBub设置为<代码> /Ur/bin /Env Perl < /代码>,它应该使用您的路径中的“代码> Perl < /Cord>”的版本。另外,请看一下安装非系统版本的Perl的更好方法。
我刚刚看了一下AI::Categorizer
包,其中包含的demo.pl
文件有一个硬编码的shebang#/usr/bin/perl
,所以我相信它正在尝试使用系统perl
假设您还没有尝试将这一行(demo.pl的第一行)更改为指向/opt/local/bin/perl
,那么我怀疑这样做可以解决您的问题
您还可以考虑将SeBub设置为<代码> /Ur/bin /Env Perl < /代码>,它应该使用您的路径中的“代码> Perl < /Cord>”的版本。另外,看看哪种方法可能是安装非系统版本Perl的更好方法。
这不是对您问题的直接回答,而是。。。我建议您查看perlbrew
而不是使用MacPorts来安装其他版本的Perl,请查看的结果,Perl
并不重要。它将使用shebang(#!
)行上标识的解释器,而不是对您的问题的直接回答,而是。。。我建议您查看perlbrew
而不是使用MacPorts来安装其他版本的Perl,请查看的结果,Perl
并不重要。它将使用shebang(!
)行上标识的解释器。我强烈推荐Perlbrew。您不仅可以安装不同的Perl,还可以安装多个版本的Perl,每个版本都有自己的模块集。唯一的问题是必须使用Bash作为shell。对于90%的Mac用户来说,这不是问题。对我来说,这是一个问题,因为我使用了Kornshell。我确实尝试过改变shebang。我别无选择,因为我使用的是macports perl附带的CPAN。我强烈推荐Perlbrew。您不仅可以安装不同的Perl,还可以安装多个版本的Perl,每个版本都有自己的模块集。唯一的问题是必须使用Bash作为shell。对于90%的Mac用户来说,这不是问题。对我来说,这是一个问题,因为我使用了Kornshell。我确实尝试过改变shebang。我别无选择,因为我使用的是macports perl附带的CPAN。
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