首页 > 解决方案 > Windows 上的 Spyder 中不显示多处理工作者的打印

问题描述

我正在尝试使用一些示例代码对 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打印到控制台,但不会执行多处理功能并且没有报告错误。

知道这里发生了什么吗?

标签: pythonpython-3.xanacondaipythonspyder

解决方案


这里是 Spyder 维护者)这个问题在这里被问了好几次,第一个谷歌结果Spyder multiprocessing给了你正确的答案:

Spyder中的简单Python多处理函数不输出结果

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

没有多处理打印输出 (Spyder)


推荐阅读