python - 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
打印到控制台,但不会执行多处理功能并且没有报告错误。
知道这里发生了什么吗?
解决方案
(这里是 Spyder 维护者)这个问题在这里被问了好几次,第一个谷歌结果Spyder multiprocessing
给了你正确的答案:
这是另一个我自己回答的问题:
推荐阅读
- ember.js - 是否可以在 routerjs 文件中创建重定向规则以创建虚荣路由
- php - 如何制作带有目录(字典)的通用表?
- phpmyadmin - 在 PHPMyAdmin 中创建事件以每小时插入一个用户
- javascript - RxJS webSocket 动态 URL
- sql - 如果没有结果,SQL Server 函数返回一个值或 NULL
- java - 我的二维数组充满了零而不是随机数
- java - 为 ListObjectClass 中的每个对象创建 ID
- python - 如何让多处理运行?
- git - 如果文件是在使用 squash 的 rebase 中添加和删除的,git 会从索引和历史记录中永久删除文件吗?
- python - 防止 WebSocket 请求添加默认标头