File mancanti durante l'esecuzione di un lavoro perl Talend dalla riga di comando
Domanda
Ho creato un semplice lavoro Talend Perl per estrarre i dati da un file Excel e collocarlo in una tabella mysql. Questo funziona bene quando l'eseguo in Talend Studio 4.1.1.
Il problema è quando ho esportare il lavoro. Io provo a farlo funzionare in questo modo:
perl -Ilib proj.job_import_prods_0.1.pl --context = Default --context_param file_path = "/ home / antoniocs / programmazione / file.xls" $ *
Questo mi dà i seguenti errori:
Impossibile individuare IO / Scalar.pm in @INC (@INC contiene: / Home / antoniocs / programmazione / lib / Etc / perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 / Usr / lib / perl5 / usr / share / perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 / Usr / local / lib / site_perl.) A lib / OLE / Storage_Lite.pm linea 171. BEGIN fallito - compilation interrotta a lib / OLE / Storage_Lite.pm linea 171. Compilazione fallito nel richiedere al lib / Foglio / linea ParseExcel.pm 18. BEGIN fallito - compilation interrotta a lib / Foglio / linea ParseExcel.pm 18. Compilazione fallito nel richiedere al proj.job_import_prods_0.1.pl linea 568. BEGIN fallito - compilation interrotta a proj.job_import_prods_0.1.pl linea 568.
Ho già messo la ParseExcel.pm int la cartella lib nella cartella del lavoro. Non c'è modo di Talend aggiungerà automaticamente i file necessari per la cartella del lavoro?
Nota: Quando si esporta il lavoro ho controllato la casella "dipendenze di esportazione" EXTRA NOTA: io non sono un programmatore Perl
.Soluzione
Hai bisogno di trovare il percorso in cui memorizza talend
i moduli Perl (non potete semplicemente spostare i file). Una volta che sai che, è possibile creare una variabile d'ambiente PERL5LIB
dire perl
in cui i moduli si sta cercando sono memorizzati:
PERL5LIB=/path/to/modules perl -Ilib proj.job_import_prods_0.1.pl --context=Default --context_param file_path="/home/antoniocs/programming/file.xls" $*
Un find /where/talend/lives -name Scalar.pm
rapido dovrebbe darvi un indizio (si desidera che la directory prima IO
). Se si finisce per dover più directory, possono essere separati con un :
proprio come nella variabile d'ambiente PATH
.
In alternativa, è possibile installare i moduli richiesti dal vostro gestore di pacchetti (suggerimento, finestre di stile RedHat utilizzano nomi come perl-IO-scalari e Debian finestre di stile utilizzare nomi come libio-scalari-perl) o CPAN .