2010-12-13 7 views
0

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

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

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

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

не удается найти IO/Scalar.pm в @INC (@INC содержит: /дома/antoniocs/программирование/Библиотека /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/местные/Библиотека/site_perl) в Lib/OLE/Storage_Lite.pm линии 171. НАЧАТЬ не удалось. - компиляция прервана в Lib/OLE/Storage_Lite.pm строка 171. компиляция неудачу в требуют в Библиотека/Spreadsheet/ParseExcel.pm линии 18. НАЧАТЬ не удалось - компиляция прервана в Lib/Spreadsheet/ParseExcel.pm линии 18. компиляция не удалось в требуют в proj.job_import_prods_0. 1.pl строка 568. BEGIN failed - compilatio п прервана в proj.job_import_prods_0.1.pl линии 568.

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

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

ответ

1

Вам нужно найти путь, где 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.

+0

Модуль 'IO :: Scalar' живет в дистрибутиве [IO-stringy] (http://search.cpan.org/dist/IO-stringy/), поэтому имя RPM [perl-IO-stringy] (http://www.rpmfind.net/linux/rpm2html/search.php?query=perl-IO-stringy), а имя deb - [libio-stringy-perl] (http://packages.debian.org/ де/с.и.д./libio-волокнистые-Perl). – daxim

+0

Спасибо! Все файлы находились в директории таланта.Я просто скопировал их в папку с папкой работы, и все получилось отлично :) Спасибо еще раз (я также разместил это на форуме талантов, и никто не ответил. GO STACKOVERFLOW) – AntonioCS

 Смежные вопросы

  • Нет связанных вопросов^_^