【问题标题】:Python Enthought Canopy: multiprocessing not workingPython Enthought Canopy:多处理不起作用
【发布时间】:2014-11-13 13:05:43
【问题描述】:

我一直在尝试使用 enthought canopy (Windows 8) 进行多处理。我尝试了以下示例:

import multiprocessing

nProcesses=3

def worker():
   """worker function"""
    print "working"
    return

if __name__ == '__main__':
 jobs = []
 for i in range(nProcesses):
     p = multiprocessing.Process(target=worker)
     jobs.append(p)
     p.start()

接近复制粘贴您在网上找到的示例...

进程已创建,但似乎什么也没做。没有打印“工作”。

我从 Canopy 提供的环境中运行我的文件 (main.py)(我认为是 IDLE),但我没有在解释器中复制这些行,而是运行整个脚本(如 %run "D:/path/main .py")

我做错了什么?

【问题讨论】:

  • 您没有做错任何事情,IDLE 只是没有正确处理打印子进程的输出。如果您要直接从命令提示符运行脚本,它将按预期工作。

标签: python multiprocessing python-idle enthought


【解决方案1】:

Canopy 的 python shell 是 IPython 的 QtConsole(不是 IDLE)。

QtConsole 将计算与控制台输出(前端)分开。为确保在您需要时打印文本,请在您的打印语句之后插入:

sys.stdout.flush()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    相关资源
    最近更新 更多