【问题标题】:Uvicorn isn't running when i execute it via a script当我通过脚本执行 Uvicorn 时,它没有运行
【发布时间】:2022-02-25 19:28:05
【问题描述】:

如果我从终端运行 uvicorn main:app --reload 一切正常。

当把它放在一个 my_script.sh 文件中时

#!/bin/bash
exec uvicorn main:app --reload

然后什么都没有发生。为什么?

我找到了这个:Uvicorn/FastAPI executable,但似乎没有答案。

【问题讨论】:

    标签: bash fastapi uvicorn


    【解决方案1】:

    您可以改为在现有 Python 脚本(即您的情况下为 main.py)或新 Python 脚本中添加 main 方法(更具体地说,if __name__ == "__main__":)或 run uvicorn 服务器,允许您设置参数,例如hostportreloadworkers 等(如图所示here),然后从您的 bash 脚本中简单地执行该 Python 脚本。查看here 了解所有可用的options

    import uvicorn
    
    if __name__ == "__main__":
        uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)
    

    编辑:由于您提到below,您“在 docker-compose 的入口点部分定义了脚本”,因此请确保您提供准确的路径bash 脚本,以及它具有执行权限。看看问题herehere。我还建议看看relevant FastAPI documentation

    【讨论】:

    • 你好,我也试过了,但没有结果:(我在 docker-compose 的入口点部分定义了脚本。当我启动它时,它只是以 errcode 0 退出。
    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多