0
私はos.execvp()
関数をPythonで使用しています。私はこの機能の結果を得ることができません。python 2.7でos.execvp()の結果を得るには?
try:
msi_install_cmd = ['msiexec.exe', '/quiet', '/i ', msi_path.encode('mbcs')]
os.execvp(msi_install_cmd[0], msi_install_cmd)
except Exception, error:
raise Exception("MSI installed failed")
問題がos.execvp()
からの戻りコードまたは例外を取得することができません。
そして、どのように起こることになっていますか? ['execvp()'](https://docs.python.org/2/library/os.html#os.execvp)は、現在のプロセスを実行されたプロセスに置き換えます。すべてがうまくいくと、機能は設計通りに戻ってこない。代わりに['subprocess.call()'](https://docs.python.org/2/library/subprocess.html#subprocess.call)などを使用しますか? – dhke
ありがとうdhke。リターンコードが得られるところで他に何が使えますか? –
編集を参照してください。あなたのケースで 'check_call()'が役に立ちます( 'call()'は失敗時に例外を発生させません)。 – dhke