使用py-spy执行性能测试遇OS Error 31,求排查与修复方案
解决py-spy报错(os error 31)的步骤
一、定位故障设备
- 打开设备管理器:按下Win+X选择「设备管理器」,查看列表中带有黄色感叹号的设备,这类设备就是存在故障的。
- 查看系统事件日志:按下Win+R输入
eventvwr.msc,展开「Windows日志」→「系统」,筛选来源为「Disk」「USB」或「PlugPlayManager」的错误事件,日志详情里会明确提到出问题的设备名称或ID。 - 用命令行快速排查:以管理员身份打开命令提示符,运行
wmic path win32_pnpentity where "status='Error'" get caption, deviceid,命令会直接列出所有状态异常的设备信息。
二、修复方案
1. 处理故障设备
- 卸载异常设备驱动:在设备管理器中右键带感叹号的设备,选择「卸载设备」,勾选「删除此设备的驱动软件」后确认,重启电脑让系统自动重新安装驱动。
- 针对USB设备:拔插设备或更换USB接口测试;若是内置硬件(如硬盘、网卡),去设备厂商官网下载最新驱动安装。
2. 调整py-spy的使用方式
- 升级py-spy版本:你当前用的是适配Python2的0.3.14版本,而你的Python是3.10,建议执行
pip install --upgrade py-spy升级到支持Python3的最新版本,旧版本可能存在Win10进程兼容性问题。 - 以管理员权限运行:右键命令提示符选择「以管理员身份运行」,再执行
py-spy top -- python main.py,权限不足可能导致无法读取进程相关信息。 - 关闭干扰软件:暂时关闭杀毒软件、防火墙或其他进程监控工具,这类软件可能会阻止py-spy访问系统进程资源。
- 指定进程ID启动:先单独运行
python main.py,然后用tasklist | findstr python找到对应的进程ID,再执行py-spy top -p <你的进程ID>,绕过启动时的进程检测环节。
内容的提问来源于stack exchange,提问作者codingbear
相关产品推荐
相关产品推荐

