【问题标题】:Python os.waitpid throw `[Errno 10] No child processes`Python os.waitpid throw `[Errno 10] No child processes`
【发布时间】:2011-10-02 14:10:28
【问题描述】:

以下代码在 Windows 平台上返回 [Errno 10] No child processes(python 版本 2.7.2)。

导入子流程 导入操作系统 pid = subprocess.Popen(["cmd"]).pid os.waitpid(pid, 0) print '进程 %d 完成' % pid

相同的代码在 Linux 上运行良好。

【问题讨论】:

    标签: python


    【解决方案1】:

    也许这会起作用-但我不知道为什么您的代码无法在 Windows 上运行-一切看起来都很好:

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

    【讨论】:

    • 是的,您的代码有效。但我只是无法弄清楚我的代码有什么问题。你能在你的机器上重现我的问题吗?
    • 我没有安装任何 Windows,所以会出现问题。但我认为可能 Windows 不会立即分配 pid,而您在分配之前尝试访问它。
    • 我终于找到了原因。 os.waitpid 将进程句柄作为参数,而不是进程 ID。这真的很令人困惑。无论如何,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多