Python错误抑制信号18至Win32

2022-03-07 00:00:00 python signals stdin winapi

问题描述

我创建了一个简单的test.py,包含以下内容:

import sys
res = sys.stdin.read()
print(res)

但是当我尝试运行

python test.py

然后我输入

hello

并通过Ctrl+z结束输入,我收到以下消息:

4 [sig] bash 11516! sigpacket::process: Suppressing signal 18 to win32 process (pid 10620)

我找不出出了什么问题。

Ctrl<3>

信号18仅是推荐答案+Z的处理程序。(从技术上讲,它映射到SIGTSTP。)该信号告诉进程暂停。由于该信号通常对Windows进程没有意义,因此git-bash会抑制该消息,但仍会让您知道它抑制了该信号。

不幸的是,默认的git-bash终端MinTTY没有为本机Windows控制台应用程序正确连接控制台。因此,即使忽略警告消息,Python解释器也不能真正正常工作。(More info)

为了正确连接python,您需要使用winpty启动python。命令:

winpty python test.py

将起作用。如果需要访问git命令,也可以使用git-cmd;如果不需要,也可以打开标准的Windows命令提示符并在那里运行python。

相关文章