在Windows上的python中获取CPU温度

时间:2014-01-10 19:40:03

标签: python python-2.7 wmi cpu temperature

基本上我想读取python中的cpu温度。请以外行的方式解释,因为我以前从未在Windows上做过这个,也没有必要和wmi一起工作。

这就是我现在所拥有的:

import wmi
w = wmi.WMI(namespace="root\wmi")
temperature_info = w.MSAcpi_ThermalZoneTemperature()[0]
print temperature_info.CurrentTemperature

(我从这个帖子得到了这段代码:Accessing CPU temperature in python

然而,在运行脚本时,我收到此错误:

Traceback (most recent call last):
  File "C:\Users\Ryan\Desktop\SerialSystemMonitor", line 4, in <module>
    temperature_info = w.MSAcpi_ThermalZoneTemperature()[0]
  File "C:\Python27\lib\site-packages\wmi.py", line 819, in query
    handle_com_error ()
  File "C:\Python27\lib\site-packages\wmi.py", line 241, in handle_com_error
    raise klass (com_error=err)
x_wmi: <x_wmi: Unexpected COM Error (-2147217396, 'OLE error 0x8004100c', None, None)>

我该怎么做才能让它发挥作用?

2 个答案:

答案 0 :(得分:1)

根据WMI Error Constants上的MSDN页面,您收到的错误是:

  

<强> WBEM_E_NOT_SUPPORTED
  2147749900(0x8004100C)

     

不支持功能或操作。

据推测,您的CPU不会通过WMI提供温度信息。如果您的CPU没有公开这些信息,那么您可能运气不好,至少就Python中的直接解决方案而言。

我假设您已尝试使用Win32_TemperatureProbe()在您链接的答案中给出的其他选项;如果你还没有,试试吧。

答案 1 :(得分:1)

只需以管理员身份执行即可。这对我有用。