私は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
Er、run_in_background メソッドは、「プレーンな」python コードから呼び出したときにも機能します。
エラー位置は私のプログラムの最初の行です。パスに何か問題があるのではないかと思います...しかし、長い間検索した後、理由がわかりませんでした。助けてください。ありがとう。