[英]Missing files when running a Talend perl job from the command line
我创建了一个简单的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 / programming / file.xls” $ *
这给了我以下错误:
无法在@INC中找到IO / Scalar.pm(@INC包含:/ home / antoniocs / programming / lib / etc / perl /usr/local/lib/perl/5.10.1 / usr / local / share / perl /在lib / OLE / Storage_Lite.pm行的5.10.1 / usr / lib / perl5 / usr / share / perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 / usr / local / lib / site_perl。) 171. BEGIN失败-在lib / OLE / Storage_Lite.pm第171行中编译失败。BEGIN失败-在lib / Spreadsheet / ParseExcel.pm第18行中require编译失败。 。在proj.job_import_prods_0.1.pl第568行的require中编译失败。BEGIN失败-在proj.job_import_prods_0.1.pl 568行中的编译中止。
我已经将ParseExcel.pm int lib文件夹放置在作业的文件夹中。 talend有没有办法自动将必要的文件添加到作业的文件夹?
注意:导出作业时,我选中了“导出依赖项”框。额外注意:我不是perl程序员。
您需要找到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 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.