2010-12-13 3 views
0

Excel에서 데이터를 추출하고이를 mysql 테이블에 배치하는 간단한 talend perl 작업을 만들었습니다. talend studio 4.1.1에서 실행하면 잘 작동합니다.명령 줄에서 Talend perl 작업을 실행할 때 누락 된 파일

문제는 내가 작업을 내보낼 때입니다. 그래서처럼 실행하려고 :

펄 -Ilib proj.job_import_prods_0.1.pl --context = 기본 --context_param FILE_PATH = "/ 홈/antoniocs/프로그래밍/file.xls" $ *

이 나에게 다음과 같은 오류를 제공합니다 :

@ INC 에서 IO/Scalar.pm을 (@ INC 포함 찾을 수 없습니다 : /홈/antoniocs/프로그래밍/lib에을 0/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/지방/lib 디렉토리/site_perl) lib 디렉토리/OLE는/Storage_Lite.pm 라인에서 171 BEGIN 실패 -. 컴파일이 lib 디렉토리에서 중단/OLE/Storage_Lite.pm 라인 171 컴파일에 실패 (18) 실패 BEGIN lib 디렉토리/스프레드 시트/ParseExcel.pm 라인에 필요 - 18 컴파일이 실패 proj.job_import_prods_0에서 필요로 컴파일이 lib 디렉토리/스프레드 시트/ParseExcel.pm 라인에서 중단되었습니다. 1.pl 라인 568. BEGIN 실패 - compilatio N 이미 작업의 폴더에 lib 폴더하는 int ParseExcel.pm에 놓여있다 proj.job_import_prods_0.1.pl 라인 (568)

에서 중단되었습니다. 재능이 자동으로 작업 폴더에 필요한 파일을 추가 할 방법이 있습니까?

참고 : 작업을 내보낼 때 "종속성 내보내기"확인란을 선택했습니다. 참고 : 저는 Perl 프로그래머가 아닙니다.

답변

1

talend이 Perl 모듈을 저장하는 경로를 찾아야합니다 (파일을 이동할 수 없습니다). 당신이 알고 일단이 찾고있는 모듈이 저장되어있는 경우, 당신은 perl을 말할 PERL5LIB 환경 변수를 만들 수 있습니다

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 전에 디렉토리를 원하는) 제공해야합니다. 여러개의 디렉토리가 필요하다면, 환경 변수와 마찬가지로 :으로 구분할 수 있습니다.

또는 패키지 관리자에서 필요한 모듈을 설치할 수 있습니다 (힌트, 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/ de/sid/libio-stringy-perl). – daxim

+0

감사! 파일들은 모두 탤런트에 있었어.방금 작업 lib 디렉토리에 복사했는데 모두 훌륭하게 작동했습니다 :) 다시 한번 감사드립니다 (또한 talend 포럼에 게시했으며 아무도 응답하지 않았습니다. STACKOVERFLOW로 이동) – AntonioCS

관련 문제