python错误将信号18抑制到win32

时间:2018-05-01 02:13:53

标签: python winapi signals stdin

我创建了一个简单的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)

我无法弄清楚出了什么问题。

screenshot

1 个答案:

答案 0 :(得分:4)

信号18只是 Ctrl + Z 的处理程序。 (从技术上讲,它映射到SIGTSTP。)信号告诉进程暂停。由于信号通常对Windows进程毫无意义,git-bash会抑制该消息,但它仍然会让您知道它抑制了该信号。

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

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

winpty python test.py

会奏效。如果你需要访问git命令,你也可以使用git-cmd,或者打开标准的Windows命令提示符并在那里运行python。