2017-08-16 16 views
1

.shスクリプトをPythonとDjangoを使用して実行中に何らかのエラーが発生しました。エラーは以下の通りです。PythonとDjangoを使用してサブプロセス呼び出しを実行中にエラーが発生しました

Traceback (most recent call last): 
    File "cell.py", line 3, in <module> 
    subprocess.call(shlex.split('./test.sh param1 param2')) 
    File "/usr/lib/python2.7/subprocess.py", line 522, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "/usr/lib/python2.7/subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child 
    raise child_exception 
OSError: [Errno 13] Permission denied 

私は以下のコードを説明しています。

cell.py:

import subprocess 
import shlex 
param1='Reactor1' 
param2='Running' 
subprocess.call(shlex.split('bash test.sh',param1,param2)) 

test.sh:

#!/bin/sh 
echo $1 
echo $2 
exit 0 

私は上記のエラーを取得していたファイルを実行しているとき。このエラーを解決するのを手伝ってください。

+0

ためにあなたの

subprocess.call(shlex.split('bash test.sh',param1,param2)) 

を交換しては 'test.sh'は' + X '属性が設定されていますか? –

+0

私はそのファイルを作成し、同じプロジェクトフォルダに保存しました。 – subhra

+0

goそれをチェックしてください。代わりに './test.sh param1 param2'の代わりに' bash test.sh param1 param2' –

答えて

1

subprocess.call(shlex.split('bash test1.sh %s %s'%(param1,param2))) 

または

subprocess.call(['bash', 'test1.sh', param1, param2]) 
+0

@subhraパラメータを渡していますが、正しくフォーマットされていませんでした。それはエラー – Sanket

+0

が期待通りに機能してくれたためです。 – subhra

+0

なぜ後で再び分割するだけの文字列を作成するのですか?代わりに 'subprocess.call(['bash'、 'test1.sh'、param1、param2])'を使用してください。 –

関連する問題