我正在尝试将 dropbox-api 安装到我的 suse 11.4 上,但我一直收到此错误:
无法在 @INC 中找到 DateTime.pm (@INC 包含:/usr/lib/perl5/site_perl/5.12.3/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.12.3 /usr/lib/perl5/vendor_perl/5.12.3/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.12.3 /usr/lib/perl5/5.12.3/i586-linux-thread-multi /usr/lib/perl5/5.12.3 .),位于 /root/bin/dropbox-api 的第 6 行。BEGIN 失败 - 编译在 /root/bin/dropbox-api 的第 6 行中止。
起初我以为它缺少一些 perl 模块,所以我继续使用以下方法安装了一些 CPAN 模块以及 CPAN shell:
#perl -MCPAN -e shell
因此,我通过 shell 安装了额外的模块,例如
# install DateTime::TimeZone
但我仍然得到同样的错误。有人知道我可能做错了什么或出了什么问题吗?我正在使用这些说明安装 API。
答案1
你安装了吗DateTime::Format::Strptime
?它具有DateTime
依赖项,因此应该已经安装。
尝试运行以下测试来验证 DateTime 是否已安装:
$ perl -MDateTime -e1
如果没有产生任何输出,则测试成功;类似这样的消息Can't locate DateTime.pm in @INC <...>
表示在库搜索路径中未找到 DateTime。
您是否使用过cpanm
安装DateTime::Format::Strptime
?如果您使用了 cpan shell,请确保对“遵循依赖关系”回答“是”,以便自动安装模块的依赖关系。
您使用的是perlbrew
或 吗local::lib
?这两种工具都可能导致模块安装到非标准位置,从而导致程序无法找到它们(除非它们也使用local::lib
或运行) perlbrew
。
如果以上所有操作均失败,则运行的输出是什么:
$ echo DateTime | perl -MFile::Spec -nE'BEGIN { say STDERR qq{Searching "${ \join(q{", "}, @INC)}"} } chomp; for my $dir ( @INC ) { my $module_file = File::Spec->catfile( $dir, split /::/, $_ ) . qq{.pm}; say $module_file if -e $module_file; }'