在 @INC 中找不到 XML/LibXML.pm
Posted
技术标签:
【中文标题】在 @INC 中找不到 XML/LibXML.pm【英文标题】:Can't locate XML/LibXML.pm in @INC 【发布时间】:2017-07-13 17:18:42 【问题描述】:我正在尝试运行使用 XML/LibXML 包的脚本。 但是,已经安装了 XML/LibXML 包。我运行了以下命令: perl -MXML::LibXML -e 1. 没有输出,说明这个包已经安装了。
当我运行我的脚本时。出现以下错误。
在@INC 中找不到 XML/LibXML.pm(@INC 包含: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .)。 BEGIN 失败——编译中止。
还有一点需要注意的是/usr/lib64/perl5/site_perl/下没有目录“5.8.8”
请建议解决这个问题。
【问题讨论】:
脚本中的shebang是什么?你从which perl
得到什么输出?你从perl -MXML::LibXML\ 999
得到什么输出?
Re "还有一点需要注意的是/usr/lib64/perl5/site_perl/下没有目录"5.8.8"",这不太可能是问题。
请提供perl -MXML::LibXML -le'print "#!".$^X; print $INC"XML/LibXML.pm"'
的输出和脚本的第一行。
【参考方案1】:
有三种可能:
您安装了两次perl
,而您的脚本使用了“错误”的一个。
要么使用脚本使用的perl
安装 XML::LibXML,要么将脚本的 shebang (#!
) 行替换为以下输出:
perl -MXML::LibXML -le'print "#!".$^X'
环境差异。
如果 XML::LibXML 安装在非标准目录中,则可能是 PERL5LIB
用于在您执行测试时将其传达给 perl
,而不是在您运行脚本时。
权限问题。
这不太可能。
如果脚本以与您的测试相同的用户身份运行,则不是权限问题。
如果是权限问题,请确保执行脚本的用户可以访问库目录。
【讨论】:
以上是关于在 @INC 中找不到 XML/LibXML.pm的主要内容,如果未能解决你的问题,请参考以下文章
SerializationException:在 c# unity3d 中找不到类型'System.Collections.Generic.List`1