subprocess.Popen(cmd)找不到可以在终端中运行的命令

时间:2016-12-24 09:11:57

标签: macos python-3.x tex

对于上下文:我在macOS上,使用Spyder进行开发。我用MACTeX安装了TeX。

我正在制作一个自动文本文档,我想使用此处提出的解决方案:enter image description here

当在Spyder中执行python脚本时,我挂起了调用“subprocess.Popen(cmd)”的行。错误是:

@app.route('/todo', methods = ['POST'])  
def create_todo():
    if not request.json:
        abort(400)
    response= jsonify()
    todo = Todo(UserID = request.json["UserID"],details = request.json["details"])
    db.session.add(todo)
    #db.session.commit()
    db.session.flush() # will get id from database
    response.status_code = 201
    response.headers['location'] = '/todo/{}'.format(todo.todo_ID)
    db.session.commit() # write to database
    return response

如果我尝试在终端中执行命令FileNotFoundError: [Errno 2] No such file or directory: 'pdflatex'" ,它会找到命令并完美地执行它。

我可能有一条路径缺失或类似的东西,虽然我很困惑我的错误信息,因为它提到缺少文件,我希望缺少命令。

1 个答案:

答案 0 :(得分:1)

您需要设置shell=True才能获得正确的shell设置:

subprocess.Popen(['pdflatex'], shell=True)