2012-05-09 17 views
18

Eventuali duplicati:
What's the easiest way to install a missing Perl module?non può individuare LWP/Simple.pm in @INC

Sto tentando di eseguire a Perl script per convertire SCXML a Graphviz DOT. Ho modificato la prima riga dello script a:

#!/usr/bin/env perl 

e chmod +x il file. Quando eseguo via ./scmxl2dot.pl vedo il seguente output di errore:

Impossibile individuare LWP/Simple.pm in @ 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) alla linea ./scmxml2dot.pl 14.
BEGIN fallito -. compilation interrotta in linea ./scmxml2dot.pl 14.

linea 14 del file è use LWP::Simple;

Come faccio:

  1. Scopri se ho questa cosa (modulo?) installato, e/o
  2. Get LWP :: Simple e renderlo disponibile allo script?

Questo è in esecuzione in OS X 10.7.3 e Perl 5.12.3 (come si vede nell'errore).

+2

Dal [Stack Overflow Perl FAQ] (http://stackoverflow.com/questions/tagged/ perl? sort = faq): [Qual è il modo più semplice per installare un modulo Perl mancante?] (http://stackoverflow.com/questions/65865/whats-the-easest-way-to-install-a-missing-perl -modulo) – daxim

risposta

30
  1. Sei già stabilito che non si dispone di essa (da qualche parte si può trovare).

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

+0

Grazie; Non sapevo se forse mancava un percorso da qualche variabile di configurazione env o simile. – Phrogz

+0

Prova a eseguirlo da sudo – Vincent

6
  1. Eseguire il seguente dalla riga di comando:

    perl -MLWP::Simple -e 1 
    

    Se non si ottiene alcun output del comando precedente, allora il modulo è installato; se si ottiene un errore, non è installato

  2. installare uso

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

Quando incontri perl usano :: Modulo va oltre gli elementi del modulo incorporato @INC che contiene nomi di directory. In ogni directory controlla se c'è una sottodirectory chiamata "My" e se in quella sottodirectory c'è un file chiamato "Module.pm".

controlla dove LWP :: Simple module è installato sul tuo sistema e digita sotto la riga appena sopra l'utilizzo LWP :: Dichiarazione semplice del tuo codice.

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

Date un'occhiata alla pagina web Perldoc. Questo ti dirà quali moduli sono i moduli Perl standard e quali no.

È anche possibile utilizzare il comando perldoc per scoprire se è installato un modulo Perl e, in caso affermativo, la relativa documentazione.

$ perldoc LWP::Simple 

(Se perldoc non viene eseguito come un comando fare ls -l /usr/bin/perl*. Sui Mac, alcuni dei comandi Perl non hanno il bit di esecuzione acceso. Per accenderlo, fare sudo chmod a+x /usr/bin/perl).

Accade semplicemente che lo LWP::Simple non sia un modulo Perl standard e, se non lo si possiede, è necessario installarlo. La maggior parte delle persone ti ha già parlato di cpan. Sfortunatamente, per impostazione predefinita, il Mac non ha gli strumenti necessari per lo sviluppo della riga di comando installati. You'll have to install them.

Una volta che sono installati, è possibile utilizzare il comando cpan installare LWP :: Simple:

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