Closed. This question is not reproducible or was caused by typos。它当前不接受答案。












想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

1年前关闭。



Improve this question




我正在尝试从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命令正常。我在外面检查过,但是从浏览器中收到“内部服务器错误”。

编辑:作为第一个答案指出它有一个错字...但是现在它运行正常,但我的浏览器没有任何输出...

最佳答案

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

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

更新

还有另一种错字。在第二项中删除一个空格:
cmd = ["ls", " -l"]
              ^

关于python - 从Flask应用程序运行Shell命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23977475/

10-11 20:23