从python

时间:2017-04-17 19:50:45

标签: python macos process subprocess

我正在尝试使用进程名称来获取pid。我尝试过this解决方案。但它给了我这个错误

    Traceback (most recent call last):
  File "pidName.py", line 10, in <module>
    getPIDs("safari")
  File "pidName.py", line 4, in getPIDs
    pidlist = map(int, s.check_output(["pidof", process]).split())
  File "/usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 567, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/local/Cellar/python/2.7.12_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

代码是这样的:

import subprocess as s
def getPIDs(process):
    try:
        pidlist = map(int, s.check_output(["pidof", process]).split())
    except  s.CalledProcessError:
        pidlist = []
    print 'list of PIDs = ' + ', '.join(str(e) for e in pidlist)

if __name__ == '__main__':
    getPIDs("safari")

因为,我是这些东西的新手。我无法解决这个问题。但在解决方案中它起作用。但不知怎的,它不在我的Mac上。我正在使用mac。并从终端运行python脚本。

which python给了我这样的结果: -

/usr/local/bin/python

所以,我正在使用内置的python版本。

任何人都可以帮我解决这个问题。

0 个答案:

没有答案