Windows 上的 Spyder 中未显示多处理工作人员的打印件

Prints of multiprocessing workers don't show in Spyder on Windows

我正在尝试使用 Python 和一些示例代码进行一些多处理,我可以让它在 Python 中工作,但不能在 Spyder 中使用 IPython.

我有一个 python 文件:test.py

它包含此示例代码:

import multiprocessing

def worker():
    """worker function"""
    print( 'Worker')
    return

if __name__ == '__main__':
    print('run this code')
    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()

我正在使用 Python 的 Anaconda3 发行版。如果我转到 Anaconda 提示符并键入:

python test.py

代码按预期工作。

而且,如果我用 IPython 尝试同样的事情:

IPython test.py

代码再次生效!!

不过,我喜欢在 Anaconda3 附带的 Spyder IDE 中进行开发。而在 Spyder 中,控制台是 IPython.

如果我在带有 IPython 控制台的 Spyder 中 运行 test.py,我得到 run this code 打印到控制台,但是没有执行多处理功能并且有没有错误报告。

知道这里发生了什么吗?

(这里是 Spyder 维护者) 这个问题已经被问过好几次了,Spyder multiprocessing 的第一个 Google 结果给了你正确的答案:

这是我自己回答的另一个问题: