2011-07-11 12 views
0

次のコードはWindowsプラットフォーム(pythonバージョン2.7.2)で[Errno 10] No child processesと返されます。Python os.waitpid throw `[Errno 10]子プロセスがありません。

 
import subprocess 
import os 
pid = subprocess.Popen(["cmd"]).pid 
os.waitpid(pid, 0) 
print 'process %d finished' % pid 

同じコードがLinuxでうまく機能します。

答えて

1

Mabyこれはワーク・でしょうが、私はあなたのコードはのWindows-のすべての作業をしない理由は考えて、持っていないが正常に見える:

import subprocess 
subp = subprocess.Popen(["cmd"]) 
subp.wait() 
print 'process %d finished' % subp.pid 
+0

はい、あなたのコードが動作します。しかし、私は自分のコードで何が間違っているのか分かりません。あなたのマシンに私の問題を再現できますか? – fwu

+0

私はWindowsがインストールされていないので問題になります。しかし、私はおそらく、Windowsはpidをすぐに割り当てず、割り当ての前にそれにアクセスしようとしていると思います。 – mrbox

+1

最後に私は理由を考え出した。 os.waitpidプロセスハンドルをパラメータとして使用します。プロセスIDは使用しません。これは本当に混乱しています。とにかくたくさんありがとう。 – fwu

関連する問題