从烧瓶应用程序运行shell命令

时间:2014-06-01 06:56:36

标签: python shell flask

我试图从烧瓶应用程序运行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命令没问题。我在外面检查了它,但是从浏览器中我得到了内部服务器错误"。

编辑:正如第一个回答指出它有一个错字......但现在它运行正常,但我没有在我的浏览器中获得任何输出......

1 个答案:

答案 0 :(得分:13)

这是一个简单的错字。以下行中的cd应为cmd

p = subprocess.Popen(cd, # <----
                     stdout=subprocess.PIPE,
                     stderr=subprocess.PIPE,
                     stdin=subprocess.PIPE)

<强>更新

还有另一个错字;删除第二项中的空格:

cmd = ["ls", " -l"]
              ^