Python OSError:[Errno 2]没有这样的文件或目录

时间:2009-12-18 09:51:53

标签: python

我正在尝试将此脚本写入我的linux终端,我收到以下错误消息:“OSError:[Errno 2]没有这样的文件或目录”。任何人都可以帮忙,谢谢

#!/home/build/test/Python-2.6.4

import os, subprocess

   # Create a long command line
cmd =[\
 "si createsandbox --yes --hostname=be", \
 " --port=70", \
 " --user=gh", \
 " --password=34", \
 "  --populate --project=e:/project.pj", \
 " --lineTerminator=lf new_sandbox"\
 ]

outFile = os.path.join(os.curdir, "output.log")
outptr = file(outFile, "w")

errFile = os.path.join(os.curdir, "error.log")
errptr = file(errFile, "w")

retval = subprocess.call(cmd, 0, None, None, outptr, errptr)

errptr.close()
outptr.close()

if not retval == 0:
  errptr = file(errFile, "r")
  errData = errptr.read()
  errptr.close()
  raise Exception("Error executing command: " + repr(errData))

2 个答案:

答案 0 :(得分:5)

如果您的脚本中出现错误,可能是您在此行中出错

errptr = file(errFile, "r")

你可以这样做

if os.path.exists(errFile):
  errptr = file(errFile, "r")
  errData = errptr.read()
  errptr.close()
  raise Exception("Error executing command: " + repr(errData))

并尝试使用fullpath命令“si”,如/usr/bin/si,而不仅仅是si

答案 1 :(得分:0)

尝试修改如下:

cmd =[\
  "si", \
  " createsandbox --yes --hostname=be", \
  " --port=70", \
  " --user=gh", \
  " --password=34", \
  "  --populate --project=e:/project.pj", \
  " --lineTerminator=lf new_sandbox"\
]

我guset subprocess.call会认为“”中的第一个参数是命令