bheinzerling / pyrouge

A Python wrapper for the ROUGE summarization evaluation package
MIT License
250 stars 71 forks source link

Subprocess error #4

Closed hilaw closed 7 years ago

hilaw commented 7 years ago

While running some example code similar to the one found in your documentation, I get the following error (running on Windows 7 x64, Python 3.4):

*2017-02-02 09:53:30,910 [MainThread ] [INFO ] Running ROUGE with command ..\RELEASE-1.5.5\ROUGE-1.5.5.pl -e ...\RELEASE-1.5.5\data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m C:\Users...\AppData\Local\Temp\tmpwbiw8z7b\rouge_conf.xml Traceback (most recent call last): File "rouge_eval.py", line 14, in output = r.convert_and_evaluate() File "C:\Python34\lib\site-packages\pyrouge\Rouge155.py", line 361, in convert_and_evaluate rouge_output = self.evaluate(system_id, rouge_args) File "C:\Python34\lib\site-packages\pyrouge\Rouge155.py", line 336, in evaluate rouge_output = check_output(command).decode("UTF-8") File "C:\Python34\lib\subprocess.py", line 607, in check_output with Popen(popenargs, stdout=PIPE, kwargs) as process: File "C:\Python34\lib\subprocess.py", line 858, in init restore_signals, start_new_session) File "C:\Python34\lib\subprocess.py", line 1111, in _execute_child startupinfo) OSError: [WinError 193] %1 is not a valid Win32 application Press any key to continue . . .

Any assistance would be highly appreciated

bheinzerling commented 7 years ago

It looks like pyrouge generated all the files necessary for running ROUGE, but the actual command for running it fails.

You can try running ROUGE manually, with this in a console:

..\RELEASE-1.5.5\ROUGE-1.5.5.pl -e ...\RELEASE-1.5.5\data -c 95 -2 -1 -U -r 1000 -n 4 -w 1.2 -a -m C:\Users...\AppData\Local\Temp\tmpwbiw8z7b\rouge_conf.xm

If this fails, it means that Perl has probably not been installed correctly on your system. This is what you should see when you run the commands

assoc .pl type PerlScript

in a console:

C:>assoc .pl .pl=PerlScript

C:>ftype PerlScript PerlScrip=C:\bin\perl.exe "%1" %*

If this works, then .py files may not have been correctly associated with python.exe on your system. You can check with this:

C:>assoc .py .py=Python.File

C:>ftype Python.File Python.File="C:\Python27\python.exe" "%1" %*