Хорошо, ребята, вот еще один фрагмент кода (из http://win32com.goermezer.de/content/view/211/189/):
import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_Environment")
for objItem in colItems:{
print "Caption: ", objItem.Caption
print "Description: ", objItem.Description
print "Install Date: ", objItem.InstallDate
print "Name: ", objItem.Name
print "Status: ", objItem.Status
print "System Variable: ", objItem.SystemVariable
print "User Name: ", objItem.UserName
print "Variable Value: ", objItem.VariableValue
}
И снова отображается та же ошибка:
Caption: Error: '' object has no attribute 'Caption'
Что происходит? Почему класс отличается от указанного в ExecQuery? Я имею в виду, если кто-то говорит «Выбрать * из Win32_ComputerSystem», как он может запросить другой класс, чем Win32_ComputerSystem?
Кстати, я запускаю код Python 2.4 через сервер Spyce 2.0.3.
p.s. Я обнаружил, что квадратные скобки {} - это один из способов правильно интерпретировать блок кода Python - в противном случае выдается ошибка «ожидается блок с отступом»