Python Git Bash 中的脚本忽略键盘中断 Control C
Python script in Git Bash ignores keyboard interrupt Control C
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 工作的修复程序?
我用的是Windows10,Python3.7.3,GitBash是mintty-2.9.6
按照@ConnorLow 的建议,我将 Git for Windows 升级到最新版本 2.28.0,其中包括 Git Bash mintty 3.2.0。这解决了报告的问题。
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 工作的修复程序?
我用的是Windows10,Python3.7.3,GitBash是mintty-2.9.6
按照@ConnorLow 的建议,我将 Git for Windows 升级到最新版本 2.28.0,其中包括 Git Bash mintty 3.2.0。这解决了报告的问题。