Mac OSX Perl在@INC中找不到DBD :: mysql

时间:2013-12-05 19:49:45

标签: macos perl dbd

我已经通过DBD::mysql安装了CPAN模块sudo cpan install DBD::mysql以运行下面的代码,但是我不断收到错误消息:

Can't locate loadable object for module DBD::mysql in @INC (@INC contains: 
  /sw/lib/perl5/5.12.3/darwin-thread-multi-2level
  /sw/lib/perl5/5.12.3
  /sw/lib/perl5/darwin-thread-multi-2level
  /sw/lib/perl5
  /sw/lib/perl5/darwin
  /Library/Perl/5.12/darwin-thread-multi-2level
  /Library/Perl/5.12
  /Network/Library/Perl/5.12/darwin-thread-multi-2level
  /Network/Library/Perl/5.12
  /Library/Perl/Updates/5.12.3/darwin-thread-multi-2level
  /Library/Perl/Updates/5.12.3
  /System/Library/Perl/5.12/darwin-thread-multi-2level
  /System/Library/Perl/5.12
  /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level
  /System/Library/Perl/Extras/5.12
  .
)
at dbi_write.pl line 11
Compilation failed in require at dbi_write.pl line 11.
BEGIN failed--compilation aborted at dbi_write.pl line 11.

这是我的代码

#!/usr/bin/perl

#use lib '/usr/bin/cpan';
use strict;
use FileHandle;
use File::Spec;
use DBI;
use DBD::mysql;

2 个答案:

答案 0 :(得分:2)

您的CPAN安装成功了吗?如果是这样,那么该模块已安装在您正在运行的Perl版本的错误位置。

查看CPAN日志以查看已安装DBD::mysql的位置。答案就在那里,修复取决于它的安装位置以及为什么它不在你的Perl @INC中。

你有多个Perl安装吗?

顺便说一句,您没有use DBD::mysql。当您调用DBI指定MySQL源时,DBI->new会自动加载它。这会以运行时加载驱动程序模块为代价来整理代码 - 这是一个很小的代价。

答案 1 :(得分:0)

我通过以下方式解决了这个问题:

将libmysqlclient.18.dylib复制到/ usr / lib /

此外,我的Mac OS X中有两个不同的Perls。一个位于/usr/local/ActivePerl5.16/,另一个位于/Systems/Library/Per/Perl5.12