Скрипт Python, работающий в Linux - PullRequest
1 голос
/ 18 декабря 2009

У меня проблемы с попыткой заставить этот скрипт работать. Когда я отлаживаю этот код, он не будет читать в класс или функции. Код не будет выполняться должным образом. Кто-нибудь знает проблему здесь, спасибо

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

import os, subprocess

class mks_function:

 sandbox="new_sandbox"

 def mks_create_sandbox():  
  try:  
   retcode=call("si createsandbox" + "--no --hostname=bel --port=70 --user=user --password=1234 --populate --project=e:/project.pj --lineTerminator=lf new_sandbox", shell=True)  
   if retcode < 0:  
    print >>sys.stderr, "Child was terminated by signal", -retcode  
   else:  
    print >>sys.stderr, "Child returned", retcode  
 except OSError, e:  
    print >>sys.stderr, "Execution failed:", e  
    print "sandbox retVal="+retcode  
    print "Creating a new sandbox called "+sandbox+" "  
###############################################################

Ответы [ 2 ]

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

Несколько вещей, чтобы проверить ваш код

  • call должно быть subprocess.call
  • лучше использовать полный путь при вызове, например, /usr/bin/si createsandbox, вы можете проверить с помощью which si в shell
  • вместо объединения команд "si createsandbox" + "--no ...", используйте список ["/usr/bin/si","createsandbox --no ..."]
  • вы не импортировали sys, но использовали его
  • sandbox должно быть self.sandbox и def mks_create_sandbox(): должно быть def mks_create_sandbox(self):
  • Используйте IDE, например Ulipad .
1 голос
/ 18 декабря 2009

Попробуйте поставить в первой строке:

#!/usr/bin/env python

Если вам действительно нужна конкретная версия Python, настройте среду перед запуском.

Возможные проблемы:

  • ваш код никогда не выполняется (как будто вы определяете только класс). Используйте его в файле (имена вводят в заблуждение):

    if __name__ == '__main__': myObject = mks_function()

  • покажите нам, как вы выполняете код? Вы изменили разрешения, чтобы иметь возможность запускать скрипт?

    chmod +x filename.py

  • или вы пытаетесь запустить его как:

    python filename.py

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