我正在尝试将此脚本写入我的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))
答案 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会认为“”中的第一个参数是命令