我试图从烧瓶应用程序运行shell命令并尝试获取输出。我正在尝试的应用程序如下:
from flask import Flask
import subprocess
app = Flask(__name__)
@app.route("/")
def hello():
cmd = ["ls"," -l"]
p = subprocess.Popen(cmd, stdout = subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
out,err = p.communicate()
return out
if __name__ == "__main__" :
app.run()
shell命令没问题。我在外面检查了它,但是从浏览器中我得到了内部服务器错误"。
编辑:正如第一个回答指出它有一个错字......但现在它运行正常,但我没有在我的浏览器中获得任何输出......
答案 0 :(得分:13)
这是一个简单的错字。以下行中的cd
应为cmd
:
p = subprocess.Popen(cd, # <----
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
<强>更新强>
还有另一个错字;删除第二项中的空格:
cmd = ["ls", " -l"]
^