¿Cómo recupero la temperatura de mi CPU usando Python? (Suponiendo que estoy en Linux)¿Cómo obtener la temperatura de la CPU usando Python?
Respuesta
Py-cputemp parece hacer el trabajo.
Dependiendo de su distribución de Linux, puede encontrar un archivo en /proc
que contenga esta información. Por ejemplo, this page sugiere /proc/acpi/thermal_zone/THM/temperature
.
Puede probar el módulo PyI2C, puede leer directamente desde el kernel.
Si su Linux es compatible con ACPI, debe leer el pseudo-archivo /proc/acpi/thermal_zone/THM0/temperature
(la ruta puede variar, sé que es /proc/acpi/thermal_zone/THRM/temperature
en algunos sistemas) debería hacerlo. Pero no creo que haya una forma de que funcione en cada sistema Linux en el mundo, por lo que tendrá que ser más específico sobre qué Linux tiene exactamente! -)
Como alternativa puede instalar el paquete lm-sensors, luego instale PySensors (un enlace de pitón para libsensors).
Desafortunadamente PySensors solo se ejecuta en la versión de Python 2.x. –
Hay un newer API (vea también LWN article y) que muestra las temperaturas debajo de, p.
/sys/class/thermal/thermal_zone0/temp
Las lecturas están en milésimas de grados Celsius (aunque en los núcleos antiguos, puede haber sido sólo grados C).
Lectura de archivos en /sys/class/hwmon/hwmon */temp1_ * funcionó para mí, pero AFAIK no hay estándares para hacer esto limpiamente. De todos modos, puede probar esto y asegurarse de que proporciona el mismo número de CPU que se muestra con la herramienta "sensors" cmdline, en cuyo caso puede asumir que es confiable.
from __future__ import division
import os
from collections import namedtuple
_nt_cpu_temp = namedtuple('cputemp', 'name temp max critical')
def get_cpu_temp(fahrenheit=False):
"""Return temperatures expressed in Celsius for each physical CPU
installed on the system as a list of namedtuples as in:
>>> get_cpu_temp()
[cputemp(name='atk0110', temp=32.0, max=60.0, critical=95.0)]
"""
# http://www.mjmwired.net/kernel/Documentation/hwmon/sysfs-interface
cat = lambda file: open(file, 'r').read().strip()
base = '/sys/class/hwmon/'
ls = sorted(os.listdir(base))
assert ls, "%r is empty" % base
ret = []
for hwmon in ls:
hwmon = os.path.join(base, hwmon)
label = cat(os.path.join(hwmon, 'temp1_label'))
assert 'cpu temp' in label.lower(), label
name = cat(os.path.join(hwmon, 'name'))
temp = int(cat(os.path.join(hwmon, 'temp1_input')))/1000
max_ = int(cat(os.path.join(hwmon, 'temp1_max')))/1000
crit = int(cat(os.path.join(hwmon, 'temp1_crit')))/1000
digits = (temp, max_, crit)
if fahrenheit:
digits = [(x * 1.8) + 32 for x in digits]
ret.append(_nt_cpu_temp(name, *digits))
return ret
Sysmon works nice. Bien hecho, hace mucho más que medir la temperatura de la CPU. Es un programa de línea de comando y registra todos los datos que midió en un archivo. Además, es de código abierto y está escrito en python 2.7.
recientemente he implementado esto en psutil para Linux solamente.
>>> import psutil
>>> psutil.sensors_temperatures()
{'acpitz': [shwtemp(label='', current=47.0, high=103.0, critical=103.0)],
'asus': [shwtemp(label='', current=47.0, high=None, critical=None)],
'coretemp': [shwtemp(label='Physical id 0', current=52.0, high=100.0, critical=100.0),
shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),
shwtemp(label='Core 1', current=52.0, high=100.0, critical=100.0),
shwtemp(label='Core 2', current=45.0, high=100.0, critical=100.0),
shwtemp(label='Core 3', current=47.0, high=100.0, critical=100.0)]}
Cuida pyspectator
en pip
ADVERTENCIA: Requiere Python> = 3,0
from pyspectator import Cpu
from time import sleep
cpu = Cpu(monitoring_latency=1)
while True:
print cpu.temperature
sleep(1)
- 1. ¿Cómo obtener la temperatura de la CPU?
- 2. ¿Cómo obtener la información de temperatura de la CPU desde Bios usando C#?
- 3. Control de temperatura de la CPU
- 4. Acceso temperatura de la CPU en pitón
- 5. Obtener la temperatura del disco duro usando Python
- 6. Código de C++ para la carga de la CPU y la temperatura de la CPU
- 7. ¿Cómo obtener la temperatura de la CPU y la velocidad del ventilador en OS X?
- 8. Uso de sensores lm para obtener la temperatura
- 9. Cómo obtener la temperatura ambiente de Arduino Lilypad Sensor de temperatura
- 10. Obtener la temperatura de la batería en android
- 11. Lectura programada de la temperatura de la CPU (+ otros datos del sensor) en MacOSX (Macbook Pros)
- 12. ¿Cómo puedo obtener la información de la CPU en .net?
- 13. Cómo obtener la frecuencia de la CPU en C#
- 14. Obtener subdominio de la URL usando Python
- 15. ¿Cómo acceder a los sensores de calor de la CPU?
- 16. ¿Cómo se lee la temperatura de la GPU (tarjeta gráfica)?
- 17. ¿Cómo obtener el uso de la CPU en C?
- 18. ¿Cómo obtener la clave pública usando PyOpenSSL?
- 19. cómo llegar temperatura de la batería en Android
- 20. ¿Cómo puedo obtener el uso de la CPU y la memoria?
- 21. Forma multiplataforma para obtener la utilización de CPU/memoria
- 22. Obtener la dirección MAC de dispositivos usando Python
- 23. Debian: Descubre el uso de la CPU usando bash
- 24. ¿Cómo obtener la información del sistema con Python?
- 25. hilo de obtener el 100% de la CPU muy rápido
- 26. Reemplazar temperatura con consulta
- 27. C API para obtener carga de la CPU en Linux
- 28. ¿Cómo se lee la temperatura del disco duro?
- 29. java usando 100% cpu
- 30. Cómo averiguar el número de CPU usando pitón
py-cputemp es básicamente una fina capa sobre/proc/acpi/thermal_zone. Esto originalmente no funcionó para mí hasta que me di cuenta de que necesitaba habilitar ACPI en mi BIOS. Lo había desactivado porque pensé que no quería administración de energía en un servidor. Gracias por la respuesta; Estoy aceptando este porque fue publicado primero y me llevó a pensar sobre el origen de mi problema. – jamieb
Esto no es una respuesta. – GLHF
Esta biblioteca no está en mantenimiento y ni siquiera está registrada en PyPI ... – Cerin