0

我是 Django 的新手。我想从某个角度运行一些命令。就像是:

 python /path/to/the/script/run.py -id 11 --user root --run_digital_id 29 --workflow map --lib_group library.yaml --log log.conf

我用这个方法来调用:

def run_in_background(cmd):
    logging.info('running ' + cmd)
    p = subprocess.Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)
    output, errors = p.communicate()
    print output
    print errors
    logging.debug(output)
    logging.debug(errors)

该命令被传递给方法 run_in_background()。当我复制命令并在终端上运行时,它运行良好。但是当我从 Django 的某个视图运行它时,它会报告:

Traceback (most recent call last):
  File "/path/to/the/script/run.py", line 11, in ?
    import conf, util
  File "/path/to/the/script/conf.py", line 11
    class Settings():
                   ^
SyntaxError: invalid syntax

呃,当我从一些“普通”python 代码中调用它时,run_in_background 方法也可以工作。

错误位置是我程序的第一行。我怀疑路径有问题......但是经过长时间的搜索,我没有得到原因。请帮忙。谢谢。

4

1 回答 1

1

似乎这是解决方案!

在某些 python 版本中,用空括号定义类class Settings():无效,您可能希望将其更改为class Settings(object):

于 2012-10-09T10:11:19.380 回答