2013-11-02 120 views
0

我遇到了Python在我的Linux机器上查找可用可执行文件的问题。我的默认路径包括这个可执行文件(svnlook),但是当我运行python脚本时,下面的函数无法找到可执行文件。有想法该怎么解决这个吗?Python subprocess.Popen找不到可执行文件

def command_output(cmd): 
    child = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) 
    output = child.communicate()[0] 
    return output, child.returncode 


def get_author(): 
    cmd = "svnlook author %s %s %s" % (svn_opt, svn_txn, svn_repo) 
    author, return_code = command_output(cmd) 

    return author.strip() 

错误:

Traceback (most recent call last): 
    File "/home/user/app/csvn/data/repositories/repo/hooks/pre-commit", line 82, in <module> 
    author = get_author() 
    File "/home/user/app/csvn/data/repositories/repo/hooks/pre-commit", line 53, in get_author 
    author, return_code = command_output(cmd) 
    File "/home/user/app/csvn/data/repositories/repo/hooks/pre-commit", line 36, in command_output 
    child = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) 
    File "/home/user/app/activepython-2.7.2.5_x86_64/lib/python2.7/subprocess.py", line 679, in __init__ 
    errread, errwrite) 
    File "/home/user/app/activepython-2.7.2.5_x86_64/lib/python2.7/subprocess.py", line 1228, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 
Error: [Errno 2] No such file or directory 
+0

这是为什么downvoted? – c12

+2

请发布完整的回溯。 –

+2

您没有找到_executable_而不是一个进程。 –

回答

0

尝试从控制台运行它。确保权限/可执行性是正确的。试试os.system()。

相关问题