Python multiprocessing: How can I RELIABLY redirect stdout from a child process?

前端 未结 5 652
不知归路
不知归路 2020-12-08 14:27

NB. I have seen Log output of multiprocessing.Process - unfortunately, it doesn\'t answer this question.

I am creating a child process (on windows) via multiprocessi

5条回答
  •  渐次进展
    2020-12-08 14:37

    Here is the simple and straightforward way for capturing stdout for multiprocessing.Process:

    import app
    import io
    import sys
    from multiprocessing import Process
    
    
    def run_app(some_param):
        sys.stdout = io.TextIOWrapper(open(sys.stdout.fileno(), 'wb', 0), write_through=True)
        app.run()
    
    app_process = Process(target=run_app, args=('some_param',))
    app_process.start()
    # Use app_process.termninate() for python <= 3.7.
    app_process.kill() 
    

提交回复
热议问题