Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从Django视图运行.sh脚本?_Python_Django_Bash_Shell_Django Views - Fatal编程技术网

Python 如何从Django视图运行.sh脚本?

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

堆栈溢出

我试图从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 "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
确实有效。