【发布时间】:2016-10-05 19:38:07
【问题描述】:
Win 7、x64、Python 2.7、Anaconda 4.2.0、IPython 5.1.0
我正在学习一些 multiprocessing 教程并在 IPython 控制台中工作时立即遇到问题。下面的代码...
import multiprocessing
print 'hello'
def worker():
"""worker function"""
print 'Worker'
return
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
我期待...
hello
worker
worker
worker
worker
worker
但我得到了..
hello
为什么 worker 函数的输出没有显示在 IPython 控制台中?
编辑:当从 Anaconda 命令行运行时,它会在 print 'Worker' 行出现语法错误而退出,但从 Python 控制台运行时,如果我一直按 Enter 键,则会按预期运行。
编辑 2:现在可以在 Anaconda 命令窗口中使用(我安装了错误的 Python)。问题似乎不仅限于此代码。任何并行化函数中的任何打印语句都不会出现在 IPython 控制台中。
【问题讨论】:
-
顺便说一句,所以需要 2 个换行符才能使文本出现在新行上。使用代码格式来解决这个问题。
-
我怀疑这是因为程序在你给工人打印的机会之前就结束了。
-
您可以通过阻止程序以某种方式结束来测试它,例如在启动作业后要求用户输入。
-
我刚试过但没用。代码在 Python 控制台中按预期运行。
-
嗯。对不起。那我不知道。
标签: python ipython python-multiprocessing