在python中从进程名称获取进程id

在python中从进程名称获取进程id,python,macos,process,subprocess,Python,Macos,Process,Subprocess,我正试图借助进程名获取pid。我试过这个解决办法。但它给了我这个错误 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_outpu

我正试图借助进程名获取pid。我试过这个解决办法。但它给了我这个错误

    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
因为,我对这些东西不熟悉。我无法解决这个问题。但在解决方案中,它是有效的。但不知怎么的,它不在我的Mac上。我在用mac。以及从终端运行python脚本

哪个python
给出了以下结果:-

/usr/local/bin/python
所以,我使用的是内置的python版本


有人能帮我解决这个问题吗。

如果您从终端手动运行
pidof safari
是否有效?您想要使用的命令可能是
pgrep
(可能带有选项
-i
,不关心进程的大小写)而不是pidof。@FamousJameous我试过了。它也给了我同样的错误@JohanL你能解释一下如何使用
pgrep
?看起来OSX没有提供
pidof
命令(可能还有
pgrep
命令,尽管我没有Mac电脑,所以我可以检查)。看看这个SO问题,看看它是否有帮助:
/usr/local/bin/python