在计算机系统中,温度监控是一个至关重要的环节,尤其是在高性能计算机或服务器上,psutil(Python进程和系统利用率工具包)是一个强大的库,可以帮助开发者获取系统资源的使用情况,包括温度信息,本文将详细介绍如何使用psutil来查看计算机的温度,并探讨在过程中可能遇到的报错问题。

psutil简介
psutil是一个跨平台库,它提供了获取系统使用情况的方法,包括进程、系统资源、网络接口等,psutil支持Linux、Windows、OS X、FreeBSD、NetBSD和OpenBSD等操作系统。
安装psutil
在开始使用psutil之前,确保你已经安装了该库,可以使用以下命令安装:
pip install psutil
获取温度信息
psutil本身并不直接提供获取硬件温度的功能,但可以通过调用第三方模块或API来实现,以下是一个使用psutil获取CPU温度的示例:
import psutil
def get_cpu_temperature():
# 获取CPU温度,这里以Linux系统为例
temp = psutil.sensors_temperatures()
if 'coretemp' in temp:
for cpu, temp_info in temp['coretemp'].items():
print(f"CPU {cpu}: {temp_info[0]}°C")
else:
print("No CPU temperature data available.")
get_cpu_temperature()
处理报错
在使用psutil查看温度信息时,可能会遇到以下几种报错:

No sensors data available
这种错误通常意味着你的系统不支持温度监控或者psutil没有正确地识别到温度传感器,为了解决这个问题,你可以尝试以下步骤:
- 确保你的系统支持温度监控。
- 检查psutil是否正确安装,并确保它是最新版本。
- 尝试使用其他方法来获取温度信息,例如使用系统自带的工具或第三方软件。
Permission denied
如果你在尝试获取温度信息时收到“Permission denied”错误,这通常是因为你的Python脚本没有足够的权限来访问温度传感器,以下是一些可能的解决方案:
- 运行Python脚本时使用root权限。
- 确保你的用户有权限访问温度传感器。
FAQs
Q1:psutil是否支持所有操作系统的温度监控?
A1:psutil支持多个操作系统,但对于温度监控,其支持程度因操作系统而异,psutil在Linux系统上提供了较好的温度监控支持,而在Windows和macOS上可能需要额外的模块或工具。

Q2:如何获取特定硬件的温度信息?
A2:要获取特定硬件的温度信息,你需要首先确定该硬件是否支持温度监控,并且psutil是否能够识别它,一旦确认,你可以使用psutil的sensors_temperatures()方法来获取温度信息,并通过指定硬件的名称来筛选出所需的数据,如果你想要获取GPU的温度,你可以尝试以下代码:
def get_gpu_temperature():
temp = psutil.sensors_temperatures()
if 'nvidia' in temp:
for gpu, temp_info in temp['nvidia'].items():
print(f"GPU {gpu}: {temp_info[0]}°C")
else:
print("No GPU temperature data available.")
get_gpu_temperature()
上述代码假设你的系统中有nvidia GPU,并且psutil能够识别它,如果你的系统使用的是AMD GPU或其他品牌,你需要相应地修改代码。