Python调用psutil获取CPU频率时报'NoneType'无current属性错误如何解决
报错原因
psutil.cpu_freq()在你的Linux虚拟机环境下返回None,调用current属性时触发空类型属性错误。- 多数虚拟机不会向客机系统开放CPU频率读取接口,psutil无法拿到对应数据就会返回空值。
- 你已经通过cpuinfo库获取到了完整的CPU频率数据,不需要依赖psutil的频率读取接口。
解决方案
提供两种可选修复方案:
方案1:兼容psutil调用
给psutil频率调用增加空值判断,兜底展示异常提示:
if chave == "freq": cpu_freq = psutil.cpu_freq() s = str(round(cpu_freq.current, 2)) if cpu_freq else "暂不支持虚拟机环境读取"
方案2:直接使用cpuinfo的频率数据(推荐)
直接从你已经拿到的cpuinfo结果中提取频率,不需要额外调用psutil,适配性更强:
if chave == "freq": # 把Hz单位转成MHz freq_mhz = round(info_cpu['hz_actual_raw'][0] / 1000 / 1000, 2) s = str(freq_mhz)
内容的提问来源于stack exchange,提问作者Kaio H. Cunha
相关产品推荐
相关产品推荐

