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

Er、run_in_background メソッドは、「プレーンな」python コードから呼び出したときにも機能します。

エラー位置は私のプログラムの最初の行です。パスに何か問題があるのではないかと思います...しかし、長い間検索した後、理由がわかりませんでした。助けてください。ありがとう。

4

1 に答える 1

1

これが解決策のようです!

のような空の括弧でクラスを定義する一部のPythonバージョンclass Settings():は無効であるため、次のように変更することをお勧めします。class Settings(object):

于 2012-10-09T10:11:19.380 に答える