如何运行.sh脚本表单Django视图?

时间:2016-01-22 09:35:13

标签: python django bash shell django-views

堆栈溢出。

我试图从Django视图中运行一些简单的bash脚本(.sh)。

我的views.py:

def start_stop(request):
    subprocess.Popen(['/home/ubuntu/contacts/contacts/scripts/test.sh'], shell=True)
    result = 'Success'
    return HttpResponse(result)

我的bash脚本test.sh:

echo "testing text"
source /home/ubuntu/contacts/ENV/bin/activate
cd /home/ubuntu/contacts/contacts/scripts/
python final_poster.py

我的主要目标是激活virtualenv并启动python脚本名称" final_poster.py"。但它不起作用。我也尝试使用subprocess.call而没有任何成功的结果。我被困在上面,你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我认为如果没有在shell上看到任何错误,那么脚本就会正常运行。如果要查看python shell的输出,则可以将logging添加到bash脚本中。例如:

echo "testing text"
source /home/ubuntu/contacts/ENV/bin/activate
cd /home/ubuntu/contacts/contacts/scripts/
python final_poster.py >> logfile.log

查看此SO answer了解详情。