Python сценарий в Git Bash игнорирует прерывание клавиатуры Control C - PullRequest
0 голосов
/ 06 августа 2020

Python сценарий в Git Bash игнорирует прерывание клавиатуры Control C при прямом запуске сценария.

Это простой код для тестирования, который называется test_sleep_interrupt.py. Он спит 10 раз по 1 секунде каждый раз. Я наберу Control C между ними.

#!/usr/bin/env python
import time
for i in range(0, 10):
    print(f"sleep #{i}")
    time.sleep(1)

Когда я запускаю скрипт напрямую, Control C игнорируется

$ ./test_sleep_interrupt.py
sleep #0
sleep #1
sleep #2
(hitting Control-C many times, no effect)
sleep #3
sleep #4
sleep #5
sleep #6
sleep #7
sleep #8
sleep #9

Когда я запускаю его через python, Control- C работает сразу

$ python ./test_sleep_interrupt.py
sleep #0
sleep #1
(typed Control-C)
Traceback (most recent call last):
  File "./test_sleep_interrupt.py", line 5, in <module>
    time.sleep(1)
KeyboardInterrupt

Что здесь происходит? Есть ли исправление, позволяющее заставить Control- C работать при прямом вызове скрипта?

Я использую Windows 10, Python 3.7.3, Git Bash это mintty-2.9. 6

1 Ответ

1 голос
/ 06 августа 2020

Следуя предложению @ ConnorLow, я обновил свой Git для Windows до последней версии 2.28.0, которая включает Git Bash mintty 3.2.0. Это устранило сообщенную проблему.

...