如何从不同路径运行fastapi应用程序

use*_*846 6 heroku fastapi

我的仓库目录看起来像

src/
notebooks/
web/
  one/
  two/
     app/
Run Code Online (Sandbox Code Playgroud)

当我在下面时,two我可以fastapi使用我的应用程序午餐

uvicorn app.app:app --reload --host=0.0.0.0 --port=7000
Run Code Online (Sandbox Code Playgroud)

但是,我将在 heorku 上部署我的模型,Procfile 应该位于主路径。我知道我必须创建一个 Procfile 并添加

web: uvicorn app.app:app --reload --host=0.0.0.0 --port=7000
Run Code Online (Sandbox Code Playgroud)

但我无法从其他文件夹运行该应用程序。它会给出错误

ModuleNotFoundError: No module named 'app'
Run Code Online (Sandbox Code Playgroud)

更新

的输出find web/two/app如下 在此输入图像描述

所以当我跑步时 uvicorn web.two.app.app:app --reload --port=7000

错误是 在此输入图像描述

小智 6

您必须提供从根目录到应用程序的完整路径。在你的情况下,它应该看起来像这样:

uvicorn web.two.app.app:app --reload --host=0.0.0.0 --port=7000