Python OSError: [Errno 2] Нет такого файла или каталога - PullRequest
1 голос
/ 18 декабря 2009

Я пытаюсь записать этот скрипт в мой терминал 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 ]

5 голосов
/ 18 декабря 2009

Если ошибка в вашем скрипте, возможно, вы получили ошибку в этой строке

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

0 голосов
/ 18 апреля 2013

попробуйте изменить так:

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

Я думаю, что subprocess.call подумает, что первый параметр, который в "" - это команда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...