python使用pyinstaller打包运行过程中莫名的被阻塞

问题描述

使用pyinstaller打包python代码命令

python -m PyInstaller -i logo.ico  -F  -p ./console -n scl_runner ./main.py

运行之后会有一个终端,可以看到终端日志输出正常,多次远程调用也没有问题,死循环测试调用10万次也没有卡死
在这里插入图片描述
然而,某一天莫名的接口调不通了,终端也没有任何输出,想不通,只好重启,然后好了,
等下次吧,接下来就是
重启。。。
重启。。。
重启。。。
找不到规律,不能复现

问题复现

直到今天正对着屏幕发呆时,顺手点了一下屏幕,神奇的一幕出现了
python使用pyinstaller打包运行过程中莫名的被阻塞_第1张图片
屏幕输出一大堆日志,竟然是几天前的调用,响应却是刚刚,
然后我才意识到是终端阻塞了,试了好几次发现了规律,每当我点击终端界面的时候点击位置出现白色方块,此时服务为阻塞状态
python使用pyinstaller打包运行过程中莫名的被阻塞_第2张图片
然后按个ESC或回车,白色块消失,日志正常打印,阻塞消失

问题分析

通过上面可以推断,终端上的点击导致控制台处于某种不能输出打印的状态,而导致python的日志打印被阻塞,进而导致所有有打印的接口都被阻塞。
进一步查询了解到这是因为windows的cmd默认开启了“快速编辑模式”,只要当鼠标点击cmd任何区域时,就自动进入了编辑模式,之后的程序向控制台输入内容甚至后台的程序都会被阻塞。

解决方案

  • 临时方案:输入回车或Esc解除阻塞,之后避免点到终端
  • 半永久:
    标题栏右键-属性,取消快速编辑模式勾选,然后点确定即可
    python使用pyinstaller打包运行过程中莫名的被阻塞_第3张图片
  • 永久
    上面的只对当前窗口有用,新建的窗口依然是处于快速编辑模式,如果想永久生效需要通过修改默认值方式,步骤如下:
    • 标题栏右键-默认值
    • 取消快速编辑模式勾选,
    • 然后点确定即可

你可能感兴趣的:(踩坑大全,python,python)