Python 如何从Django视图运行.sh脚本?
堆栈溢出 我试图从Django视图运行一些简单的bash脚本(.sh) My views.py:Python 如何从Django视图运行.sh脚本?,python,django,bash,shell,django-views,Python,Django,Bash,Shell,Django Views,堆栈溢出 我试图从Django视图运行一些简单的bash脚本(.sh) My views.py: def start_stop(request): subprocess.Popen(['/home/ubuntu/contacts/contacts/scripts/test.sh'], shell=True) result = 'Success' return HttpResponse(result) My bash script test.sh: echo "testi
def start_stop(request):
subprocess.Popen(['/home/ubuntu/contacts/contacts/scripts/test.sh'], shell=True)
result = 'Success'
return HttpResponse(result)
My bash script 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,但没有任何成功结果。我被卡住了,你能帮我吗?我想如果在shell上没有看到任何错误,那么脚本运行正常。如果您想查看python shell的输出,那么可以添加到bash脚本中。例如:
echo "testing text"
source /home/ubuntu/contacts/ENV/bin/activate
cd /home/ubuntu/contacts/contacts/scripts/
python final_poster.py >> logfile.log
查看此项了解详细信息。您能详细说明哪些不起作用?哪些不起作用?您是否收到错误消息?@NahuelIanni.sh script不运行python脚本。我不知道确切的原因。现在我尝试使用subprocess.call并获取返回代码126,不知道它是什么意思。@nikihub阅读了我上面的评论。为什么不能将脚本包括在项目中,导入它,然后调用函数?我尝试了类似的方法,使用带有shebang
#的.sh
文件/bin/sh
不起作用,但是#/bin/bash
确实有效。