私は次の行で、私のPythonプログラムからperlスクリプトを呼び出すようにしようとしています:は奇妙な行動で、その結果、パイソンからperlスクリプトを呼び出そうと
subprocess.call(r'/path/to/compute_lexrank.pl /path/to/11sent',shell=True)
私はシェルから同じperlスクリプトを実行すると(ちょうど/path/to/compute_lexrank.pl /path/to/11sent
を入力して)、それは予想通り正常に動作しますが、私はPythonプログラムからそれを実行すると、perlスクリプトが実行されますが、神秘的なエラーを与える:
Math::MatrixReal::new(): number of rows must be integer > 0 at /Users/filippo/Downloads/clairlib-core-1.08/lib//Clair/Network.pm line 1628
私はperlスクリプトを書いてhaventので、私自身は、私がこれを修正する方法はわかりませんが、なぜ同じスクリプトがdi私はシェルやサブプロセスから実行するときにはっきりと何か?
私はMacOSX、Python 2.6を使っています(ただし、2.5、同じものを試しました)とperl 5.10。
誰でも手助けできますか?
に作業ディレクトリを渡す必要があります。異なるバージョンのPerlを取得している可能性が高いです。 –
どうすればいいですか? Perlスクリプトの冒頭で#!/ usr/bin/perl -wを指定しましたが、どのバージョンのperlが使用されているか確認するにはどうすればよいですか?ありがとう – Filippo
'perl -e 'print" $] \ n ";''はこのトリックを行うべきです。 –