在调试模式下,有没有办法在PyCharm IDE(3.1)中发送键盘中断事件?
不幸的是,没有简单的方法可以做到这一点.您将需要使用psutil
和signal
模块.为此,您需要安装psutil
,最好的方法是pip
:
pip install psutil
所以,让我们说在这里,展示A:
while True: try: time.sleep(3) print "Zzzz" time.sleep(3) print("gong!") except KeyboardInterrupt as e: print "Closed by an Interrupt" break
你在PyCharm中运行它.确保您正在使用的解释器已psutils
安装.你可以查看:
确保您正确设置了解释器:
如果尚未安装psutil
,则可以通过Install按钮始终执行此操作.
好吧那么,现在我们已经设置了所有内容,让我们调试程序:
现在我们所要做的就是获取进程ID,我们可以在程序的最开始处得到它:
所以,让我们启动我们的控制台,并发送一个信号:
如果这个工作正常,你应该看到while循环结束:
您可以通过在控制台的启动脚本中添加一个发送中断的函数来进一步简化该过程:
完成所有这些操作后,您需要做的就是调用interrupt(
在您的进程上调用键盘中断.
我希望能回答你的问题.
PyCharm Stop按钮现在SIGINT
以调试模式和运行模式发送.如果SIGINT
不终止程序,则" 停止"按钮将其信号更改为SIGKILL
.它还将其图标更改为头骨形状:
这是PyCharm中的一个错误.请参阅:http://youtrack.jetbrains.com/issue/PY-4840
键盘中断是SIGINT.在unix系统上,您可以转到命令行并执行以下操作:
$ kill -INT
或者在python中:
import os, signal os.kill(,signal.SIGINT)