Git for Windows Python 打印在 DEBUG/LOG 时也不起作用?

Git for Windows Python print not working when DEBUG/LOG too?

当我 运行 我的 Python 脚本时,我的打印语句没有写入 output/screen (见下面的输出)。但是,在正常的 Windows console/prompt(和 macOs)中它可以工作:日志和打印消息都写入标准输出(混合)。

DEBUG:session_storage:session:getter: MainThread
DEBUG:urllib3.connectionpool:Resetting dropped connection: example.com
DEBUG:urllib3.connectionpool:https://example.com:443 "GET /QW/7720d5b252de HTTP/1.1" 200 1073
before api init
!!setting session
b
after api init
after request init
Process  X-1  is running.
Got a valid value from queue

当我使用 CRTL-C 时,会打印 'before api init' 之后的文本(因此在程序执行后)。

代码:

# SETUP LOGGING
logging.basicConfig(level=logging.DEBUG)

def main():

  #another process is created via multiprocessing (process duplicated?)
  ...

  logger = logging.getLogger(__name__)

if __name__ == '__main__':
  main()

可能与多处理部分有关?

很可能 输出缓冲 是罪魁祸首。尝试冲洗,应该会显示消息

# for stdout
sys.stdout.flush()

# for stderr
sys.stderr.flush()