【问题标题】:unable to get process name with psutil无法使用 psutil 获取进程名称
【发布时间】:2015-05-16 21:04:56
【问题描述】:

我正在使用它来获取当前进程。它可以在我的机器上运行,但是当我在另一台机器上运行时它就不行了。

for p in psutil.process_iter():
    try:
        proc_names[p.pid] = p.name()
    except psutil.Error:
        pass
for c in psutil.net_connections(kind='inet'):
# etc...

我收到了这个错误

    proc_names[p.pid] = p.name()
TypeError: 'str' object is not callable

通过使用 p.name,我得到了这个

    for c in psutil.net_connections(kind='inet'):
AttributeError: 'module' object has no attribute 'net_connections'

【问题讨论】:

  • 鲍勃,你测试一下这个link。你需要更新 psutil。

标签: python psutil


【解决方案1】:

我猜您的机器正在使用更新版本的 psutil (2.x),而另一台机器正在使用 1.x 版本。

将 p.name() 更改为 p.name 是正确的做法,但我认为 1.x 中不存在 net_connections。改用get_connections 或在另一台机器上更新 psutil

【讨论】:

  • 这很奇怪,因为我刚刚升级到最新版本
  • 您是否通过类似 print psutil.__version__ 的操作验证了升级版本?
猜你喜欢
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 2012-08-16
  • 2012-01-22
  • 1970-01-01
  • 2015-05-21
相关资源
最近更新 更多