/ usr / bin / python:无法找到' __ main __。py' in' /'使用subprocess.call时

时间:2012-01-05 14:59:30

标签: python

我正在编写一个Python脚本来执行一些管理功能,其中包括运行其他几个python脚本。

我的代码的snipet看起来像这样:

import subprocess

PYTHON_BIN_DIR = '/usr/bin/python'
SCRIPTS_DIR = '/some/path'


if __name__ == "__main__":
    dateparam = "05-Jan-2012"
    command = [PYTHON_BIN_DIR]
    command.extend(SCRIPTS_DIR + "/myfile1.py")
    strparams = " --param1={0} ".format(123)
    command.extend(strparams)
    command.extend(dateparam)

    retcode = subprocess.call(command)

    if retcode != 0:
        # do something
        pass
    else:
        # do something else
        pass

我正在调用的所有脚本都在使用if __name__ == ""__main__""检查/测试。那是什么导致错误?

1 个答案:

答案 0 :(得分:1)

正如评论中指出的那样,您应该使用append而不是extend。我认为你的另一个问题是你在论证中包含了空格。我会拆分每个参数,即--param1=123

import subprocess
import os.path

PYTHON_BIN_DIR = '/usr/bin/python'
SCRIPTS_DIR = '/some/path'


if __name__ == "__main__":
    dateparam = "05-Jan-2012"
    command = [PYTHON_BIN_DIR, os.path.join(SCRIPTS_DIR, 'myfile1.py'),
               '--param1', 123, '--date', dateparam]

    retcode = subprocess.call(command)

    if retcode != 0:
        # do something
        pass
    else:
        # do something else
        pass