进程编程时,无法print输出子进程内容"/>
记录使用pycharm进行多进程编程时,无法print输出子进程内容
最近在学习python多进程编程,windows10系统,python3编译器,IDE为pycharm。运行网上的多线程程序,发现无法输出结果,也不提示错误。代码如下:
import os
import sys
import multiprocessing
import time
import randomdef worker(msg):t_start = time.time()print("%s开始执行,进程号为%d" % (msg, os.getpid()))time.sleep(random.random()*2)t_stop = time.time()print(msg, "执行完毕,耗时%0.2f" % (t_stop-t_start))def main():po = multiprocessing.Pool(3)for i in range(0, 10):po.imap_unordered(worker, (i,))print("----------start------------")po.close()po.join()print("----------end------------")if __name__ == '__main__':multiprocessing.freeze_support()main()
代码不复杂,但是在pycharm就是一直没反应,如下图:
经多番查询,发现这好像是一个无解的问题,在windows系统下,使用IDE(如pycharm),在子进程中无法使用print函数,这里给出了一种解决办法,可以参考。
虽然在IDE中不行,但是在windows下的cmd,或者linux下,是可以正常使用print函数的,如下图是我在cmd中运行上面的程序的结果:
这个问题我不知道怎么解决,看到的大佬们可以指导下我。
更多推荐
记录使用pycharm进行多进程编程时,无法print输出子进程内容
发布评论