【问题标题】:How do I install XML::LibXML for ActivePerl?如何为 ActivePerl 安装 XML::LibXML?
【发布时间】:2015-08-31 05:31:48
【问题描述】:

我是 Perl 新手,我正在使用 ActivePerl。 我收到以下错误:

在 @INC 中找不到 XML/LibXML.pm...

我已经尝试了所有方法,但找不到为 XML::LibXML 安装“正确”模块的步骤。

这正是正在发生的事情。我正在从命令提示符运行脚本:

c:\temp>perl myscript.pl

myscript.pl 的前几行:

#!/usr/bin/perl

use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
use HTTP::Date;
use XML::Parser;
use LWP::UserAgent;
use XML::LibXML;
use Archive::Extract;
use Encode;
use LWP::Simple;

require HTTP::Request;
...

然后我得到这个错误:

c:\temp>perl myscript.pl 找不到 @INC 中的 XML/LibXML.pm(@INC 包含: C:/Perl/site/lib C:/Perl/lib .) 在 myscript.pl 第 7 行。开始 failed——编译在 myscript.pl 第 7 行

【问题讨论】:

  • 你是想直接使用 XML::LibXML,还是你正在使用的另一个模块的依赖?
  • 我在上面添加了更多细节。我已经使用 activeperl 包管理器添加了 packabe libxml

标签: perl activeperl xml-libxml


【解决方案1】:

您应该可以使用ActivePerl Perl Package Manager 安装它。安装 ActivePerl 时应该已经创建了一个开始菜单快捷方式,启动 the GUI 并搜索 xml-libxml 和 libxml-perl。

--编辑

Here's a post on adding an alternative repository to PPM and installing XML-LibXML

【讨论】:

  • 谢谢,但我从“ActivePerl 包管理器”安装了“libxml-perl”,但仍然出现同样的错误。我检查了详细信息,该软件包没有安装 LibXML.pm 这是屏幕截图bit.ly/cf3av
  • 尝试搜索 xml-libxml。
  • 不,什么都没有发生...我在问题中添加了更多细节。谢谢!
  • 这个包目前在包管理器中可用:我刚刚安装了它。
  • 显然 5.16 上没有 LibXML.pm。请参阅下面的答案以进行修复。
【解决方案2】:

ActiveState 似乎没有提供带有 XML::LibXML 的 PPM。我查看了 CPAN 上模块的自述文件,显然有一个预构建 ppm 包可用here

【讨论】:

【解决方案3】:

我最近经历了安装 XML::LibXML 的痛苦。这是我发现的:

  1. 我们正在使用 ActiveState ActivePerl 5.8.8
  2. 为了让 ActivePerl 的 PPM 能够通过我们的代理,必须创建一个值为“http://proxy.ext.[example].com”的环境变量“http_proxy”,然后重新登录。
  3. 所需的包并不都位于 ActiveState 的存储库中。添加了温尼伯大学的 Perl 存储库 http://theoryx5.uwinnipeg.ca/ppms/package.xml(请注意,使用的确切存储库取决于您的 ActivePerl 版本)
  4. 手动将以下 DLL 安装到 C:\perl\bin\ (无论出于何种原因,我在构建这些 DLL 时遇到了一些问题,所以我最终只是从位于 http://trouchelle.com/ppm/dll/ 的存储库中获取它们)
    • iconv.dll
    • libxml2.dll
    • zlib1.dll
  5. 至少对于我们正在使用的 XML-LibXML 版本,软件包安装程序对于先决条件 XML-LibXML-Common 无法正常工作。您必须自行安装包 XML-LibXML-Common,安装 XML-LibXML 的其余部分。

虽然它们可能不是最新版本,但我目前使用的软件包版本(包括先决条件)是:

  • XML-LibXML-Common(0.13 版)
  • XML-LibXML(1.64 版)
  • XML 命名空间支持(1.10 版)
  • XML-SAX(0.96 版)

【讨论】:

  • 我今天也有同样的问题。您是否只是将这 3 个 .dll 复制到文件夹 C:\Perl\bin\ 中?使用 ppm 的搜索,它只返回 libxml-perl [0.08] libxml-perl
  • 是的,我只是复制了我描述的那 3 个 DLL。
【解决方案4】:

在 5.16 上接受的答案对我不起作用。来自this question

XML::LibXML 还没有为 Perl 5.16 做好准备。安装 5.14

下载:

【讨论】:

    【解决方案5】:

    最后,据我所知,我找到了唯一的替代 ActivePerl 存储库,它有一个用于 XML::LibXML 2.0121 的包,它将安装在最高 5.20.x 的 perl 版本上。

    您可以从此处获取包含 5.20.2 的 ActivePerl 版本:downloads.activestate.com/ActivePerl/releases/

    替代存储库称为 Bribes de Perl,位于 bribes.org/perl/

    options中输入的仓库的URL是http://bribes.org/perl/ppm/

    【讨论】:

      猜你喜欢
      • 2011-02-13
      • 1970-01-01
      • 2020-01-01
      • 2011-04-09
      • 2013-12-02
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多