2012-05-09 10 views
18

Duplicar posible:
What's the easiest way to install a missing Perl module?no puede localizar LWP/Simple.pm en @INC

Estoy intentando ejecutar a Perl script para convertir SCXML a Graphviz DOT. He modificado la primera línea del script para:

#!/usr/bin/env perl 

y chmod +x el archivo. Cuando lo ejecuto a través de ./scmxl2dot.pl veo la siguiente salida de error:

No se puede encontrar LWP/Simple.pm en @INC (@INC contiene: /opt/local/lib/perl5/site_perl/5.12.3/darwin-multi-2level /opt/local/lib/perl5/site_perl/5.12.3 /opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level/opt/local/lib/perl5/vendor_perl /5.12.3 /opt/local/lib/perl5/5.12.3/darwin-multi-2level /opt/local/lib/perl5/5.12.3/opt/local/lib/perl5/site_perl/opt/local/lib/perl5/vendor_perl) en la línea 14. ./scmxml2dot.pl
INICIAR fallado -. compilación abortada en la línea ./scmxml2dot.pl 14.

línea 14 del archivo es use LWP::Simple;

Cómo hacer yo:

  1. Averiguar si tengo esta cosa (módulo?) instalado, y/o
  2. consigo LWP :: Simple y ponerlo a disposición de la secuencia de comandos?

Esto se ejecuta bajo OS X 10.7.3 y Perl 5.12.3 (como se ve en el error).

+2

Desde el [FAQ desbordamiento de pila Perl] (http://stackoverflow.com/questions/tagged/ perl? sort = faq): [¿Cuál es la forma más fácil de instalar un módulo Perl perdido?] (http://stackoverflow.com/questions/65865/whats-the-easiest-way-to-install-a-missing-perl -module) – daxim

Respuesta

30
  1. Ya estás determinado que usted no lo tiene (en algún lugar se puede encontrar).

  2. perl -MCPAN -e'install "LWP::Simple"'

+0

Gracias; No sabía si tal vez faltaba una ruta de alguna variable de env de configuración o tal. – Phrogz

+0

Intenta ejecutarlo desde sudo – Vincent

6
  1. ejecute el siguiente desde la línea de comandos:

    perl -MLWP::Simple -e 1 
    

    Si no obtiene ninguna salida del comando anterior, entonces el módulo está instalado; Si se produce un error, no se instala

  2. para instalar el uso

    perl -MCPAN -e'install "LWP::Simple"' 
    

Cuando encuentros Perl utiliza mi :: Module pasa a través de los elementos del módulo incorporado @INC que contiene nombres de directorio. En cada directorio comprueba si hay un subdirectorio llamado "Mi" y si en ese subdirectorio hay un archivo llamado "Module.pm".

compruebe dónde está instalado el módulo LWP :: Simple en su sistema y escriba debajo de la línea justo encima del uso LWP :: Declaración simple de su código.

use lib '/usr/local/module'; 
    use LWP::Simple; 
2

Tome un vistazo a la página web Perldoc. Esto le dirá qué módulos son módulos estándar de Perl y cuáles no.

También puede usar el comando perldoc para averiguar si un módulo Perl está instalado, y si lo está, su documentación.

$ perldoc LWP::Simple 

(Si Perldoc no se ejecuta como una orden de hacer ls -l /usr/bin/perl*. En Macs, algunos de los comandos de Perl no tienen el bit de ejecución encendido. Para activarlo, hacer sudo chmod a+x /usr/bin/perl).

Ocurre que el LWP::Simple no es un módulo Perl estándar, y si no lo tiene, tendrá que instalarlo. La mayoría de las personas ya le han contado acerca de cpan. Desafortunadamente, de forma predeterminada, Mac no tiene instaladas las herramientas de desarrollo de línea de comando necesarias. You'll have to install them.

Una vez que están instalados, puede utilizar el comando cpan instalar LWP :: Simple:

$ sudo cpan #Run cpan and configure it. It takes about 3 minutes 
cpan> install LWP::Simple 
cpan> exit 
Cuestiones relacionadas