1

私はクラッシュし続けるPythonスクリプトを持っています:

subprocess.call(["pdftotext", pdf_filename])

エラーは次のとおりです。

OSError: [Errno 2] No such file or directory

ファイル名への絶対パス(デバッグ時にログファイルに保存しています)は問題ありません。コマンドラインで入力pdftotext <pdf_filename_goes_here>すると、悪意のあるファイル名のいずれに対しても機能します。subprocessしかし、Pythonで使用して呼び出されると、エラーが発生し続けます。

何が起こっている???

また、Pythonインタープリターを試してみましたが、うまくいきました。

>>> import subprocess
>>> subprocess.call(["pdftotext", "/path/to/file/test.pdf"])
0
>>> 

更新:それをみんなに知らせるために、私も試しました:

subprocess.call(["/usr/bin/pdftotext", "/path/to/file/test.pdf"])

これも同じエラーを出しました。iveは/usr/bin/pdftotext test.pdf直接使用され、機能したので、それがpdftotext実行可能ファイルへの正しいパスであることがわかります。他に何か提案はありますか?

4

1 に答える 1

1

パス上で実行可能ファイルが見つからない場合にもエラーが発生します...pdftotextへのフルパスも使用してみて、subprocess.callの$PATHがどのように設定されているかを確認してください。

于 2010-04-18T02:05:50.007 に答える