psutil - получение имени процесса пусто

Я пытаюсь запустить этот код, и я не получаю список процессов по имени:

import psutil

PROCNAME = "python.exe"

for proc in psutil.process_iter():
    if proc.name == PROCNAME:
        print proc

Я ничего не получаю, хотя процесс запущен.


person lia1000    schedule 02.06.2014    source источник
comment
Это не совсем вопрос. Вы должны просто попытаться распечатать имена процессов и посмотреть, что происходит. Если это ошибка, сообщите о ней в систему отслеживания ошибок psutil. Если есть что-то, что вы не можете объяснить, спросите в списке psutil. В этом случае я думаю, что имя процесса что-то вроде C:\Python27\python.exe (или что-то подобное).   -  person Noufal Ibrahim    schedule 02.06.2014


Ответы (3)


Я столкнулся с той же проблемой. Изменение proc.name на proc.name() решило это для меня, если у кого-то еще были подобные проблемы.

person Joules    schedule 27.08.2015
comment
спасибо, вместо документации, как это действительно работает. Потому что name возвращает объект, а _name заполняется с задержкой и обычно имеет состояние None. И просто name() действует как положено. - person Arkady; 08.12.2015

В psutil API версии 2.0.0 произошли значительные изменения:

https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#200---2014-03-10

Свойство класса proc.name было заменено методом proc.name(). Так что вам нужно адаптировать это.

person romor    schedule 11.09.2016

Попробуйте точно определить формат имени процесса, обслуживаемого psutil:

import psutil

for proc in psutil.process_iter():
    print proc.name
person user1202136    schedule 02.06.2014