Отсутствуют файлы при запуске задания Talend Perl из командной строки - PullRequest
0 голосов
/ 13 декабря 2010

Я создал простое задание talend perl для извлечения данных из файла Excel и помещения их в таблицу mysql. Это прекрасно работает, когда я запускаю его в talend studio 4.1.1.

Проблема в том, когда я экспортирую работу. Я пытаюсь запустить его так:

Perl -Ilib proj.job_import_prods_0.1.pl --context = По умолчанию --context_param file_path = "/ home / antoniocs / программирования / file.xls" $ *

Это дает мне следующие ошибки:

Не удается найти IO / Scalar.pm в @INC (@INC содержит: / home / antoniocs / программирование / 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 / Storage_Lite.pm строка 171. НАЧАЛО сбой - компиляция прервана в lib / OLE / Storage_Lite.pm строка 171. Компиляция завершилась неудачно в Строка lib / Spreadsheet / ParseExcel.pm 18. НАЧАЛО сбой - компиляция прервана в Строка lib / Spreadsheet / ParseExcel.pm 18. Компиляция завершилась неудачно в proj.job_import_prods_0.1.pl строка 568. НАЧАЛО сбой - компиляция прервана в proj.job_import_prods_0.1.pl строка 568.

Я уже поместил ParseExcel.pm в папку lib в папку задания. Нет ли способа, которым talend автоматически добавит необходимые файлы в папку задания?

ПРИМЕЧАНИЕ. При экспорте задания я установил флажок «Экспорт зависимостей». ДОПОЛНИТЕЛЬНОЕ ПРИМЕЧАНИЕ: я не программист на Perl.

1 Ответ

1 голос
/ 13 декабря 2010

Вам нужно найти путь, где talend хранит модули Perl (вы не можете просто перемещать файлы). Как только вы это узнаете, вы можете создать переменную окружения PERL5LIB, чтобы сообщить perl, где хранятся модули, которые она ищет:

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

Быстрый find /where/talend/lives -name Scalar.pm должен дать вам подсказку (вы хотите каталог до IO). Если вам понадобится несколько каталогов, их можно разделить :, как в переменной окружения PATH.

Кроме того, вы можете установить необходимые модули из диспетчера пакетов (подсказка, в стилях RedHat используются имена, такие как perl-IO-Scalar, а в стилях Debian используются имена, такие как libio-scalar-perl) или CPAN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...