在linux中运行的Python脚本

时间:2009-12-18 10:13:01

标签: python

我无法尝试让此脚本正常运行。当我调试这段代码时,它不会读入类或函数。代码将无法正常执行。有谁知道这个问题,谢谢

#!/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 个答案:

答案 0 :(得分:2)

检查代码的事情很少

  • call应为subprocess.call
  • 更好地使用完整路径,例如/usr/bin/si createsandbox,您可以查看shell中的which si
  • 请使用列表"si createsandbox" + "--no ..."
  • ,而不是连接命令["/usr/bin/si","createsandbox --no ..."]
  • 您没有导入sys,而是使用它
  • sandbox应为self.sandboxdef mks_create_sandbox():应为def mks_create_sandbox(self):
  • 使用IDE,例如Ulipad

答案 1 :(得分:1)

尝试将put作为第一行:

#!/usr/bin/env python

如果您确实需要特定版本的Python,请在运行之前设置您的环境。

可能出现的问题:

  • 您的代码永远不会执行(就像您只定义类一样)。在文件中使用它(名称有误导性):

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

  • 告诉我们你是如何执行代码的?您是否更改了权限以便能够运行脚本?

    chmod +x filename.py

  • 或者您是否尝试将其作为:

    python filename.py