2017-08-16 66 views
1

使用Python和Django運行.sh腳本時出現一些錯誤。錯誤在下面給出。在使用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

確實'test.sh'有'+ x'屬性設置? –

+0

我剛剛創建了該文件並保存在同一個項目文件夾中。 – subhra

+0

去檢查它然後...或者嘗試'bash test.sh param1 param2' –

回答

1

更換你

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

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])'而不是 –

相關問題