Faltan archivos cuando se ejecuta un trabajo Perl Talend desde la línea de comandos

StackOverflow https://stackoverflow.com/questions/4424878

  •  09-10-2019
  •  | 
  •  

Pregunta

He creado un simple trabajo de Talend perl para extraer datos de un archivo de Excel y colocarlo en una tabla de MySQL. Esto funciona bien cuando lo ejecuto en el estudio Talend 4.1.1.

El problema es cuando la exportación del trabajo. Trato de ejecutarlo así:

Perl -Ilib proj.job_import_prods_0.1.pl --context = Por defecto --context_param ruta_archivo = "/ home / antoniocs / programación / file.xls" $ *

Esto me da los siguientes errores:

No se puede encontrar IO / Scalar.pm en @INC (@INC contiene: / Home / antoniocs / programación / 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 línea 171. COMENZAR fallado - compilación abortada en lib / OLE / Storage_Lite.pm línea 171. Compilación falló en requieren por lo lib / hoja de cálculo / línea ParseExcel.pm 18. COMENZAR fallado - compilación abortada en lib / hoja de cálculo / línea ParseExcel.pm 18. Compilación falló en requieren por lo proj.job_import_prods_0.1.pl línea 568. COMENZAR fallado - compilación abortada en proj.job_import_prods_0.1.pl línea 568.

Ya he colocado el ParseExcel.pm int la carpeta lib en la carpeta del trabajo. ¿No hay manera Talend añadirá automáticamente los archivos necesarios en la carpeta del trabajo?

NOTA: Al exportar el trabajo que marcó la casilla "dependencias de exportación" EXTRA NOTA: No soy un programador de Perl

.
¿Fue útil?

Solución

Es necesario encontrar la ruta donde almacena talend módulos Perl (que simplemente no puede mover archivos). Una vez que sepas eso, se puede crear una variable de entorno PERL5LIB para contar perl donde se almacenan los módulos que está buscando:

PERL5LIB=/path/to/modules perl -Ilib proj.job_import_prods_0.1.pl --context=Default --context_param file_path="/home/antoniocs/programming/file.xls" $*

A find /where/talend/lives -name Scalar.pm rápida debería darle una pista (desea que el directorio antes de IO). Si usted enrolla encima de necesitar varios directorios, se pueden separar con un : al igual que en la variable de entorno PATH.

Como alternativa, puede instalar los módulos necesarios desde el gestor de paquetes (pista, cuadros de estilo de RedHat utilizan nombres como cuadros de estilo de Perl-IO-escalares y Debian utilizar nombres como Libio-escalar-perl) o CPAN .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top