Windows更新后IDLE显示No Subprocess,运行脚本窗口冻结
解决IDLE右键打开脚本运行冻结、显示"No Subprocess"的问题
看起来Windows更新把你的IDLE右键关联给改了,确实是因为右键打开时默认带上了-n参数,这就导致了一系列问题,我来给你拆解下原因和解决办法:
问题根源
IDLE默认的运行逻辑是主进程负责UI交互,子进程执行脚本代码,这样脚本运行时不会阻塞IDLE的窗口响应。而-n参数的作用是强制IDLE不启动子进程,直接在主进程里跑你的脚本——你的脚本又创建了线程,这会把主进程的事件循环占满,导致窗口冻结;而且因为没有独立的子进程,用sys.exit()时只能关闭整个IDLE主进程,所以会弹出“是否完全退出”的提示。
解决步骤
1. 修改注册表中的右键关联命令
- 按下Win+R,输入
regedit打开注册表编辑器 - 导航到路径:
HKEY_CLASSES_ROOT\Python.File\shell\Edit with IDLE\command - 查看右侧的「默认」值,你大概率会看到类似这样的内容:
"C:\Python27\pythonw.exe" "C:\Python27\Lib\idlelib\idle.pyw" -n "%1" - 把其中的
-n参数删掉,修改后变成:"C:\Python27\pythonw.exe" "C:\Python27\Lib\idlelib\idle.pyw" "%1" - 保存修改后关闭注册表编辑器
2. 验证修复效果
- 重启Windows资源管理器(或者直接重启电脑)
- 右键你的脚本选择「用IDLE打开」,再点击运行按钮,此时应该能正常启动子进程,实时窗口和脚本窗口都不会冻结,关闭脚本时也只会关闭对应的运行窗口,不会影响IDLE主窗口了。
内容的提问来源于stack exchange,提问作者chitondihk
相关产品推荐
相关产品推荐

