Ошибка питона Подавление сигнала 18 в win32 - PullRequest
0 голосов
/ 01 мая 2018

Я создал простой 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 голосов
/ 01 мая 2018

Сигнал 18 - это просто обработчик для Ctrl + Z . (Технически это соответствует SIGTSTP.) Сигнал говорит процессу приостановить. Поскольку сигнал, как правило, не имеет смысла для процесса Windows, git-bash подавляет сообщение, но все равно дает вам знать, что он подавил этот сигнал.

К сожалению, MinTTY, терминал git-bash по умолчанию, неправильно подключает консоль для собственных консольных приложений Windows. Таким образом, даже игнорируя предупреждающее сообщение, интерпретатор python в действительности все равно работает неправильно. (Подробнее)

Чтобы правильно подключить python, вам нужно использовать winpty для запуска python. Команда:

winpty python test.py

будет работать. Вы также можете использовать git-cmd, если вам нужен доступ к командам git, или открыть стандартную командную строку Windows и запустить там python, если у вас нет.

...