调试模式下的键盘中断PyCharm

2024-03-28 23:06:40 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

PyCharmStop按钮现在以调试模式和运行模式发送SIGINT。如果SIGINT不终止程序,则停止按钮将其信号更改为SIGKILL。它还将其图标更改为头骨形状:

See how the stop button changed its icon

不幸的是,没有简单的方法可以做到这一点。您需要使用psutilsignal模块。为此,您需要安装psutil,最好的方法是通过pip

pip install psutil

所以,假设我们在这里,展示一:

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。您可以检查:

enter image description here

确保您正确设置了口译员:

enter image description here

如果尚未安装psutil,则始终可以通过安装按钮进行安装。

好吧,那么现在我们已经设置好了所有内容,让我们调试程序:

enter image description here

现在我们要做的就是得到进程ID,我们可以在程序的一开始就得到它:

enter image description here

所以,让我们打开控制台,发送一个信号:

enter image description here

如果工作正常,您应该看到while循环结束:

enter image description here

通过在控制台的启动脚本中添加发送中断的函数,可以进一步简化此过程:

enter image description here

完成所有这些操作后,只需调用interrupt(<pid here>)来调用进程中的键盘中断。

我希望这能回答你的问题。

这是一只小虫子。见:http://youtrack.jetbrains.com/issue/PY-4840

键盘中断是一个信号。在unix系统上,您可以转到命令行执行以下操作:

$ kill -INT <pid>

或者在python中:

import os, signal
os.kill(<pid>,signal.SIGINT)

相关问题 更多 >