【发布时间】:2015-05-05 16:39:31
【问题描述】:
我正在使用 python 执行一行 shell 脚本。它不适用于 which 来测试自制软件的存在
#!/usr/bin/python
import sys, subprocess
subprocess.call(["which python"])
抛出长错误
Traceback (most recent call last):
File "installations.py", line 5, in <module>
subprocess.call(["which python"])
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 709, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1326, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
但我知道 shell 执行在某种程度上可以正常工作
#!/usr/bin/python
import sys, subprocess
subprocess.call(["whoami])
打印我的用户名就好了。我做错了什么,还是由于某种原因不受支持。是否有更好的支持方式来检测安装是否存在?
【问题讨论】:
标签: python shell subprocess