Python 存在10年的bug有望被修复
以下代码直接双击运行没有问题,但是在IDLE里运行,就没有输出。在CMD里使用python 脚本名运行也没有问题。
import multiprocessing
def worker(num):
print(f'worker {num}')
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target = worker, args = (i,))
jobs.append(p)
p.start()
input('Press Enter to exit')
具体原因参考:
Issue 13220: print function unable while multiprocessing.Process is being run – Python tracker
Issue 11820: idle3 shell os.system swallows shell command output – Python tracker
这个bug已经10年了,还没有修复。好消息是已经进入了Patch preview 阶段了。有时候不得不承认开源社区的效率很慢。
我都用不到,为什么要修复它,哈哈哈哈