Psutil的'Process'对象没有'terminal'属性

-1 投票
1 回答
1855 浏览
提问于 2025-04-18 09:50

好的,我开始使用 psutil 2.1.1 这个库,搭配 Python 2.7.6,想要测试一些命令,具体如下:

import psutil
psutil.pids()
p = psutil.Process(6096)
p.name() # gives u'googletalk.exe'
p.terminal()

这些命令都是我从 psutil 2.1.1 的文档里找到的,我尝试了进程管理部分的每一个命令。

但是当我使用 p.terminal 这个命令时,就出现了错误:

'Process' 对象没有 'terminal' 这个属性

我在命令行和新建的文件中都用过这段代码,结果都是一样的。

1 个回答

1
p = psutil.Process(6096)
p.name() # gives u'googletalk.exe'

根据你使用的进程名称 googletalk.exe,可以判断你是在用Windows系统。Process.terminal() 这个方法在Windows上是没有实现的,因为Windows没有像类Unix系统那样的终端概念。

这个 class Process 的常见实现(在 _ init_.py 文件中)是根据不同平台的具体实现来处理的(具体可以参考第610行,是由第317行指定的)——这就是你会遇到错误的原因(在_pswindows.py中没有定义这个方法)。

撰写回答