【发布时间】: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