我是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方法也正常工作。
错误位置是我程序的第一行。我怀疑路径有问题......但是经过长时间的搜索,我没理由。请帮忙。感谢。
答案 0 :(得分:1)
似乎这就是解决方案!
在某些python版本中,如class Settings():
这样的空括号定义类无效,您可能希望将其更改为class Settings(object):