3

Pythonを使用してプログラムを実行しようとしています。

from subprocess import Popen 
sa_proc = Popen(['C:\\sa\\sa.exe','--?'])

この小さなスニピットを実行すると、エラーが発生します。

WindowsError:[エラー2]システムは指定されたファイルを見つけることができません

プログラムが存在し、エクスプローラからexeへの絶対パスを直接コピーして貼り付けました。私は他のことを試しましたが、Pythonスクリプトを使用してEXEをソースフォルダーに配置し、「。/ sa.exe」を使用すると、機能することがわかりました。私が考えることができる唯一のことは、別のパーティション(F:)からPythonスクリプト(およびPython)を実行しているということです。

何か案は?ありがとう

4

2 に答える 2

8

ドキュメントにあるように、「Windows では、Popen クラスは CreateProcess() を使用して文字列を操作する子プログラムを実行します。args がシーケンスの場合、list2cmdline() メソッドを使用して文字列に変換されます。」. たぶん、その方法は物事を台無しにしているので、次のより単純なアプローチを試してみませんか:

sa_proc = Popen('C:\\sa\\sa.exe --?')

それでも失敗する場合:os.environ['COMSPEC']これを試す直前に何をしますか? の引数に追加, shell=Trueするとどうなりますか?Popen

編集:「sa」は実際には SpamAssassin と綴られたプログラムであったため、単純なスペルミスの場合であることが明らかになりました - ダブル s 2回 - OPが書いていたのは spamassasin でした - 1つのダブルsですが、単一の2回目。

于 2009-07-25T02:36:58.333 に答える
0

C:\sa\sa.exe を実行する権限がない可能性があります。プログラムを手動で実行してみましたか?

于 2009-07-24T23:28:47.113 に答える