【问题标题】:Installed Module not contained in the Perl's @INC pathPerl 的 @INC 路径中不包含已安装的模块
【发布时间】:2015-11-20 01:43:22
【问题描述】:

我在@INC 路径中包含 Excel-Writer-XLSX 模块时遇到问题。在发布这个问题之前我做了一些研究并尝试了几种解决方案,但都失败了。

所以我做到了

$sudo perl -MCPAN -e 'install Excel::Writer::XLSX'

但是在我运行代码之后,我收到了这条消息

--can't locate Excel/Writer/XLSX.pm in @INC(you may need to install the Excel::Writer::XLSX module) (@INC contains: /Library/Perl/5.18/darwin-thread-multi-2level/...)

这不是重复的问题,因为 Excel::Writer::XLSX 模块已经成功安装在我的电脑中,我不需要再次安装它。问题是当我检查我的库文件夹时,perl5 文件夹不存在,正如@INC 路径所建议的那样。相反,Perl5 文件夹位于我的用户文件夹中...实际上该模块可以在 perl5 文件夹内的 lib 文件夹中找到

我不太确定发生了什么...为什么@INC 路径显示 perl/5.18 在库文件夹中?如果你知道如何解决这个问题,请指教。太感谢了!

【问题讨论】:

  • 我的问题没有上面显示的问题的答案,因为显然该模块已安装在我的计算机中。只是@INC路径好像很奇怪,找不到模块。
  • 如何让这个问题更容易解决:use Data::Dumper; print Dumper \%INC。 perl 版本(例如,它是 5.18 吗?)。 which cpanwhich perl 的输出。
  • "当我检查我的库文件夹时,perl5 文件夹不存在,正如@INC 路径所建议的那样。相反,Perl5 文件夹在我的用户文件夹中"这听起来像您将 cpan 配置为bootstrap local::lib.

标签: excel perl


【解决方案1】:

确保@INC 包含安装模块的路径。您可以通过

来指定

export PERL5LIB=/home/foobar/code(适用于 Linux)(将此添加到 ~/.bashrc 以使其在您登录时始终可用。)

set PERL5LIB = c:\path\to\dir(适用于 Windows)


另见:

【讨论】:

  • 我还是会先找出问题所在。我在 perlbrew 安装混乱时遇到了类似的问题,简单地设置路径可能无法解决所有问题,这个意外的 '/library' 路径可能暗示其他问题。照 Sobrique 所说的去做,找出问题所在。
  • 谢谢大家的帮助!我会试试看!
【解决方案2】:

#!/usr/bin/perl

之后的 perl 代码的最顶部
BEGIN
{
push(@INC, '/home/penny/perlModules');
}
use my::module;
use File::Path;
...

这将允许您的代码使用您在 perlModules 目录中安装的任何模块。

缺点是您必须修改代码。或者您可以使用上面回答的 PERL5LIB env 路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 2021-01-03
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多