在 Powershell 中用于退出 Python 的 Ctrl-C 现在不起作用

2024-02-06

在 Powershell/命令提示符中使用 Ctrl-C 时,Python 无法退出,而是给出“KeyboardInterrupt”字符串。

最近我重新安装了 Windows 10。在重新安装之前 Ctrl-C 退出 python (3.5/2.7) 正常,没有输出。

有谁知道为什么这种情况开始发生?是否只是简单的设置?

我能想到的唯一区别是我现在使用的是 python 3.6。 Ctrl-D 在 Windows 上的 Ubuntu 上的 Bash 中工作,而 Ctrl-C 在激活的 anaconda python2 环境中可以正常退出 python。


我在 Windows 10 Pro Build 18363 和 Python 3.8.1 中遇到了这个问题。我正在运行一些 python 脚本,但无法停止一些脚本CTRL + C, but CTRL + BREAK每次都工作。Windows 文档 https://learn.microsoft.com/en-us/windows/console/ctrl-c-and-ctrl-break-signals有这样说:

CTRL+C 和 CTRL+BREAK 组合键由控制台进程进行特殊处理。默认情况下,当控制台窗口具有键盘焦点时,CTRL+C 或 CTRL+BREAK 被视为信号(SIGINT 或 SIGBREAK),而不是键盘输入...

CTRL+BREAK 始终被视为信号,但应用程序可以通过两种方式更改默认的 CTRL+C 行为,以防止调用处理程序函数:

  1. SetConsoleMode 函数可以禁用控制台输入缓冲区的 ENABLE_PROCESSED_INPUT 输入模式,因此 CTRL+C 被报告为键盘输入而不是信号。
  2. 当使用 NULL 和 TRUE 参数值调用 SetConsoleCtrlHandler 时,调用进程会忽略 CTRL+C 信号。通过使用 NULL 和 FALSE 值调用 SetConsoleCtrlHandler 可以恢复正常的 CTRL+C 处理。忽略或不忽略 CTRL+C 信号的这个属性由子进程继承,但它可以由任何进程启用或禁用,而不影响现有进程。

Thus, CTRL + C似乎是一个 SIGINT,它的操作可以由您正在运行的程序修改。 Windows 上的 Python 似乎是这样编码的:CTRL + C正在被处理为键盘输入而不是我们期望的 SIGINT。对我来说幸运的是我有CTRL + BREAK我键盘上的按键每次都有效。

对于那些没有的人BREAK在键盘上,您可以使用 Windows 屏幕虚拟键盘。

  1. Press win key + r打开运行的应用程序。
  2. Type osk然后按确定
  3. 在虚拟键盘上,按ctrl + ScrLk这应该会终止该程序。

This 堆栈线程 https://stackoverflow.com/questions/10114447/excel-vba-break-execution-when-theres-no-break-key-on-keyboard还有一些其他方法你可以尝试ctrl + ScrLk不适用于虚拟键盘。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Powershell 中用于退出 Python 的 Ctrl-C 现在不起作用 的相关文章

随机推荐

  • EF Code First 和 SQL Server 视图

    在 ASP NET MVC3 中 使用 EF Code First 时如何显示 SQL Server 视图中的数据 只需使用视图的名称作为表的名称即可
  • 检测后如何从图像中提取文本区域

    我正在尝试使用 opencv python 从图像中提取所有文本区域 我已成功检测到文本区域 但无法提取它 我提取了文本区域的较小子矩阵 但无法将它们聚合成我们在图像中视为文本区域的更大矩阵 import numpy as np impor
  • 没有实际块的 if 块内的声明是否有效?

    以下代码有效吗 如果有的话 范围是什么x int main if true int x 42 我的直觉告诉我 没有创建任何范围if因为没有实际的块 遵循它 GCC 4 7 2 向我们展示了 虽然代码是valid 的范围x仍然是简单的条件式
  • 我可以将 iPhone/iPad 作为 Eddystone Beacon 进行广播吗?

    我们可以让 iOS 设备充当 iBeacon 发射器 如果我们知道附近的 iBeacon 的 Proximity UUID 我们就可以找到它们 通过Google的Proximity Beacon API 可以配置和注册真正的Beacon硬件
  • 如何在 PostgreSQL 中高效设置减连接表?

    我有以下表格 work units 不言自明 workers 不言自明 skills 如果你想从事每个工作单位 都需要一些技能 每个工人都精通多项技能 work units skills 连接表 workers skills 连接表 工作人
  • 如何在 C# 中锁定整数?

    C 有没有办法锁定整数 整数不能与锁一起使用 因为它们是装箱的 并且仅锁定引用上的锁 场景如下 我有一个基于论坛的网站 具有审核功能 我想要做的是确保在任何给定时间只有一位版主可以审核帖子 为了实现这一点 我想锁定帖子的 ID 到目前为止
  • Memcache 打开后 Magento 会话消失

    我们遇到一个问题 当我们启用 memcache 在 nginx Web 服务器上 时 会话会从 Magento 1 10 中随机消失 我们在 Magento 中设置 cookie 过期时间似乎并不重要 由于某种原因 会话在一小时内的任何随机
  • 带有 mysql (Cloud SQL) 的谷歌应用程序引擎是否支持 GIS?

    我试图在应用程序引擎和云 sql 网站上找到一些关于此的文档 但找不到任何引用它的内容 我知道您可以对其自定义 sql 选项执行 GIS 查询 并且我知道 mysql 支持开箱即用的 GIS 但我也知道它需要一些支持有限的 C 库 更具体地
  • 如何保护我的网站免遭会话固定?

    目前我们面临着会话固定的问题 我们确实有一个受保护的站点 即 HTTPS 并且没有对其进行身份验证 这意味着它具有匿名访问权限 因此 我们面临着黑客的会话固定问题 有人可以帮助和指导吗 您应该在这里找到您需要的信息 OWASP https
  • java.lang.IllegalArgumentException:不是有效的类名:ANDROID NDK javah

    我正在学习在 WINDOWS Eclipse 上的 NDK 中编写 Android 代码 一直在关注 Sylvain Ratabouil 的教程书 所以我在跑步 外部工具 外部工具配置 创建新的程序配置 名称 MyProject javah
  • ADO.NET 数据服务 - 上传文件

    我正在尝试编写 REST Web 服务 通过该服务我们的客户可以将文件上传到我们的文件服务器上 是否有示例或任何有用的链接可供我参考以获取指导 我还没有看到很多使用 ADO NET 数据服务进行 POST 操作的示例 我已使用 POST 将
  • iOS 6 Web Audio API 没有声音

    我很高兴看到 iOS 6 支持 Web Audio API 因为我们制作 HTML5 游戏 但是 我无法让 iOS 6 使用 Web Audio API 播放任何声音 其中的示例在桌面 Chrome 中运行良好 这是一个带有触摸控制并通过
  • 记录 C(或可能是 C++)中 X 宏的使用模式的良好参考资料是什么?

    的基本定义和示例以及一些参考资料X Macros http en wikipedia org wiki C preprocessor X Macros 在此给出C 预处理器的维基百科条目 http en wikipedia org wiki
  • 有效地将矩阵值复制到新矩阵

    是否有一种有效的内置方法可以从一个矩阵复制值 例如 double 到另一个 换句话说 我正在寻找以下函数的替代品 public static double CloneMatrix double aMatrix var newMatrix n
  • AutoCompleteTextView 和 Spinner 使用相同适配器时出现问题

    我有一个 类别 列表 它们作为字符串存储在我的应用程序的 ArrayAdapter 中 这很简单 适配器是活动的一个字段 可以在任何地方访问 它是在 onCreate 期间填充值的 我有一个 条目 对话框 其中包含一个 AutoComple
  • C中循环条件下的逗号运算符

    include
  • 有没有可以浏览您应用程序的 iCloud 数据的工具?

    我正在努力将 iCloud 集成到我的应用程序中 有时会遇到冲突和保存错误的问题 数据存储在云端的事实使得调试问题变得非常困难 据我所知 iCloud 服务器上的数据会镜像到设备上的目录中 有没有任何工具 iOS 或 OSX 应用程序 可以
  • Angular Tour of Heroes:inMemory Web API 的问题

    我正在学习著名的 Angular 教程 英雄之旅 但我在迈出一步时遇到了困难 On the 第六课 HTTP https angular io tutorial toh pt6 我们正在使用一个模拟 API 调用 API 的工具 我想我遵循
  • 模拟NLog的记录器并读取记录的消息

    我使用 NLog 4 5 11 进行日志记录 使用 moq 4 10 1 进行模拟 我有一个中间件 它使用 NLog 将异常详细信息写入日志文件 我需要在 API 项目中对中间件进行单元测试 并检查记录的消息是否有正确的值 这就是我声明异常
  • 在 Powershell 中用于退出 Python 的 Ctrl-C 现在不起作用

    在 Powershell 命令提示符中使用 Ctrl C 时 Python 无法退出 而是给出 KeyboardInterrupt 字符串 最近我重新安装了 Windows 10 在重新安装之前 Ctrl C 退出 python 3 5 2