Pergunta

Eu sou novo no Perl e estou usando ActivePerl. Eu estou recebendo o seguinte erro:

Não consigo localizar xml/libxml.pm em @inc ...

Eu tentei de tudo, mas não consigo encontrar as etapas para instalar o módulo "correto" para XML :: libxml.

Aqui está exatamente o que está acontecendo. Estou executando um script de um prompt de comando:

C: temp> perl myscript.pl

As primeiras linhas de 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;
...

Então eu recebo este erro:

C: temp> perl myscript.pl não consegue localizar xml/libxml.pm em @inc (@inc contém: c:/perl/site/lib c:/perl/lib.) em myscript.pl linha 7. falhou-a compilação foi abortada em myscript.pl linha 7

Foi útil?

Solução

Você deve poder instalá -lo com o Gerenciador de pacotes ativos Perl Perl. Deveria ter havido um atalho de menu inicial criado quando você instalou o ActivePerl, inicie a GUI e procure por XML-LIBXML e LIBXML-PERL.

--editar

Aqui está uma postagem sobre a adição de um repositório alternativo ao PPM e instalando o XML-LIBXML

Outras dicas

Não se parece com o Activestate fornecer um ppm com xml :: libxml. Eu olhei no ReadMe para o módulo na CPAN e, aparentemente, um pacote PPM pré -construído está disponível aqui.

Recentemente, passei pelo PAIS de instalar o XML :: libxml. Aqui está o que eu encontrei:

  1. Estamos usando o Activestate ActivePerl 5.8.8
  2. Para que o PPM do ActivePerl passasse pelo nosso proxy, teve que criar uma variável de ambiente "http_proxy" com valor "http: //proxy.ext. [Exemplo] .com", depois re-login.
  3. Os pacotes necessários não estavam todos localizados no repositório da Activestate. Adicionado o Repositório Perl da Universidade de Winnipeg http://theoryx5.uwinnipeg.ca/ppms/package.xml (Observe que o repositório exato usado depende da sua versão do ActivePerl)
  4. Instale manualmente as seguintes DLLs em c: perl bin (por qualquer motivo, eu estava tendo alguns problemas para construir essas DLLs, então acabei simplesmente pegando -as do repositório em http://trouchelle.com/ppm/dll/ )
    • iconv.dll
    • libxml2.dll
    • zlib1.dll
  5. Pelo menos para a versão do XML-LIBXML que estamos usando, o instalador do pacote não funciona corretamente para o pré-requisito XML-LIBXML-Common. Você DEVO Instale o pacote XML-Libxml-Common por si só, ANTES DA Instalando o restante do XML-LIBXML.

Embora possam não ser as versões mais recentes, as versões dos pacotes (incluindo pré -requisitos) que estou usando atualmente são:

  • XML-Libxml-Common (ver 0.13)
  • XML-LIBXML (ver 1.64)
  • Xml-namespacesupport (ver 1.10)
  • XML-Sax (ver 0.96)

A resposta aceita não funcionou para mim no 5.16. A partir de essa questão:

XML :: libxml não estava pronto para o Perl 5.16. Instalar 5.14

Download:

No final, encontrei o único repositório alternativo ActivePerl existente, tanto quanto eu sei, e ele tinha um pacote para XML :: Libxml 2.0121, que será instalado nas versões Perl até 5.20.x.

Você pode obter versões do ActivePerl daqui que incluem 5.20.2: downloads.activeState.com/activePerl/releases/

O repositório alternativo é chamado de suborno de perl em BURIBES.org/perl/

O URL do repositório inserido em opções é http://bribes.org/perl/ppm/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top