les fichiers manquants lors de l'exécution d'un travail perl Talend à partir de la ligne de commande

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

  •  09-10-2019
  •  | 
  •  

Question

Je créé un travail simple perl talend à extraire des données à partir d'un fichier Excel et le placer dans une table MySQL. Cela fonctionne bien quand je le lance en studio talend 4.1.1.

Le problème est quand j'exporter le travail. J'essaie de l'exécuter comme ceci:

  

perl -Ilib   proj.job_import_prods_0.1.pl   --context = Par défaut --context_param file_path = "/ home / antoniocs / programmation / file.xls"   $ *

Cela me donne les erreurs suivantes:

  

Impossible de localiser IO / Scalar.pm dans @INC   (@INC contient:   / Home / antoniocs / programmation / 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.) À   lib / OLE / ligne Storage_Lite.pm 171.   BEGIN échoué - compilation avorté à   lib / OLE / ligne Storage_Lite.pm 171.   Compilation a échoué dans besoin à   lib / ligne Spreadsheet / ParseExcel.pm 18.   BEGIN échoué - compilation avorté à   lib / ligne Spreadsheet / ParseExcel.pm 18.   Compilation a échoué dans besoin à   proj.job_import_prods_0.1.pl ligne 568.   BEGIN échoué - compilation avorté à   proj.job_import_prods_0.1.pl ligne 568.

Je l'ai déjà placé le ParseExcel.pm int le dossier lib dans le dossier du travail. N'y at-il talend de façon ajoutera automatiquement les fichiers nécessaires au dossier du travail?

NOTE: Lors de l'exportation du travail, je coché la case « dépendances à l'exportation » EXTRA NOTE: Je ne suis pas un programmeur perl

.
Était-ce utile?

La solution

Vous devez trouver le chemin où talend stocke des modules Perl (vous ne pouvez pas simplement déplacer des fichiers). Une fois que vous savez que, vous pouvez créer une variable d'environnement PERL5LIB dire perl où les modules qu'il recherche sont stockés:

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 rapide devrait vous donner une idée (vous voulez que le répertoire avant IO). Si vous liquidez besoin de plusieurs répertoires, ils peuvent être séparés par un : comme dans la variable d'environnement PATH.

Vous pouvez installer les modules nécessaires à partir de votre gestionnaire de paquets (indice, boîtes de style RedHat utilisent des noms comme des boîtes de style perl-IO-Scalar et Debian utiliser des noms tels que Perl libio-scalaire) ou CPAN .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top