통계 :: R 패키지를 사용하는 간단한 perl 스크립트에서 .exe를 만들려고합니다.통계 얻기 :: R PerlApp (또는 PAR) 함께 작동
use Statistics::R;
use strict;
my $R = Statistics::R->new();
$R->startR;
$R->send('x=10');
$R->send('x');
my $ret = $R->read;
print $ret;
$R->stopR();
Perlapp .exe 파일을 만들 때까지 모든 것이 제대로 작동합니다. 나는이를 테스트 할 때, 나는 다음과 같은 오류를 얻을 :
Inappropriate I/O control operation: Win32::Process::Create() at /<C:\@programming\r\trying_r_bridge.exe>IPC/Run.pm line 2105
Inappropriate I/O control operation: Win32::Process::Create() at /<C:\@programming\r\trying_r_bridge.exe>IPC/Run.pm line 2224
Inappropriate I/O control operation: Win32::Process::Create() at /<C:\@programming\r\trying_r_bridge.exe>IPC/Run.pm line 2224
내가 온라인보고와 문제에 대한이 스레드를 발견 : http://www.nntp.perl.org/group/perl.par/2011/05/msg5022.html
이것은 그들이 말하는 :
이는 때문에 발생 Win32에서 IPC :: Run 모듈 (전용)은 일반적으로 perl.exe의 경로를 포함하는 $^X를 사용하여 하위 프로세스를 실행하려고 시도합니다. 그러나 PAR이 실행 파일을 압축하면 $^X는 이 perl.exe를 가리 키지 않으므로 그 시점에서 IPC :: Run이 실패합니다. 서브 프로세스를 사용하지 않고 Windows에서 IPC :: Run을 구현하는 것은 해결되지 않은 문제입니다.
결국 스레드 솔루션은 여기에 옵션이없는 IPC :: Run3을 사용합니다.
이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?
감사합니다. 그러나 통계 :: R은 exe를 통해 배포해야하는 훨씬 더 큰 프로젝트에 필요합니다. 다른 모든 것은 괜찮지 만이 모듈은 문제를 일으키고 있습니다. 좋은 R/perl 브릿지가 훌륭하다는 데 동의합니다. – Lozzer
당신은 Statistics : R을 패치하여 IPC를 개선하거나 다른 horrendus 해결 방법을 적용 할 것입니다. – singingfish
아마! Statistics : R 개발자에게 이메일을 보내서 제안 사항이 있는지 확인했습니다. 아직 답장이 없습니다. 나는 그들이 말하는 것을 여기에보고 할 것이다. – Lozzer