Frage

Ich habe einen einfachen Talend Perl Job Extrahieren von Daten aus einer Excel-Datei und legen Sie sich in einer MySQL-Tabelle. Das funktioniert gut, wenn ich es in Talend Studio 4.1.1 ausgeführt werden.

Das Problem ist, wenn ich den Job exportieren. Ich versuche, es zu laufen wie folgt:

perl -Ilib proj.job_import_prods_0.1.pl --context = Default --context_param file_path = "/ home / antoniocs / Programmierung / file.xls" $ *

Das gibt mir die folgenden Fehler:

Kann nicht IO / Scalar.pm in @INC lokalisieren (@INC enthält: / Home / antoniocs / Programmierung / 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.) An lib / OLE / Storage_Lite.pm Linie 171. BEGIN fehlgeschlagen - Kompilierung abgebrochen an lib / OLE / Storage_Lite.pm Linie 171. Compilation gescheitert erfordern bei lib / Kalkulationstabelle / ParseExcel.pm Leitung 18. BEGIN fehlgeschlagen - Kompilierung abgebrochen an lib / Kalkulationstabelle / ParseExcel.pm Leitung 18. Compilation gescheitert erfordern bei proj.job_import_prods_0.1.pl Linie 568. BEGIN fehlgeschlagen - Kompilierung abgebrochen an proj.job_import_prods_0.1.pl Linie 568.

Ich habe bereits die ParseExcel.pm int Ordner lib im Ordner des Auftrags gestellt. Gibt es keine Möglichkeit, Talend die benötigten Dateien auf die Aufgabe des Ordners automatisch hinzufügen?

Hinweis: Beim Export der Job, den ich die Box „Exportabhängigkeiten“ geprüft EXTRA HINWEIS: Ich bin kein Perl-Programmierer

.
War es hilfreich?

Lösung

Sie müssen den Pfad finden, wo talend speichert Perl-Module (man kann nicht nur Dateien bewegen). Sobald Sie das wissen, können Sie eine PERL5LIB Umgebungsvariable erstellen perl zu sagen, wo die Module er sucht gespeichert werden:

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

Eine schnelle find /where/talend/lives -name Scalar.pm sollten Sie geben einen Anhaltspunkt (Sie das Verzeichnis vor IO). Wenn Sie mehrere Verzeichnisse benötigen aufzuwickeln, können sie mit einem : getrennt werden genau wie in der PATH Umgebungsvariable.

Alternativ können Sie die benötigten Module aus Ihrem Paketmanager (Hinweis, RedHat Stil Boxen verwenden, um Namen wie perl-IO-Scalar und Debian Stil Boxen verwenden, um Namen wie libio-Skalar-perl) oder CPAN .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top