原文:滑动验证页面
我尝试使用 uvicorn 网络服务器运行 FastAPI,但它抛出错误。
我运行这个命令,
uvicorn api:app --reload --host 0.0.0.0
但是终端有错误。
Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) Started reloader process [23445] Error loading ASGI app. Could not import module "api". Stopping reloader process [23445]
在文件名前添加目录名
uvicorn src.main:app
或 cd
进入该目录
cd src uvicorn main:app
长答案
发生这种情况是因为您与 FastAPI 应用程序实例不在同一个文件夹中,更具体地说:
假设我有一个这样的应用程序树;
my_fastapi_app/ ├── app.yaml ├── docker-compose.yml ├── src │ └── main.py └── tests ├── test_xx.py └── test_yy.py $ pwd # Present Working Directory /home/yagiz/Desktop/my_fastapi_app
我和我的应用程序实例不在同一个文件夹中,所以如果我尝试用 uvicorn 运行我的应用程序,我会得到一个像你的错误
$ uvicorn main:app --reload INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [40645] using statreload ERROR: Error loading ASGI app. Could not import module "main".
答案很简单,在文件名前加上文件夹名
扫描二维码关注公众号,回复:
17139787 查看本文章
uvicorn src.main:app --reload
或者你可以改变你的工作目录
cd src
现在我在我的应用程序实例所在的文件夹中
src └── main.py
再次运行你的 uvicorn
$ uvicorn main:app --reload INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [40726] using statreload INFO: Started server process [40728] INFO: Waiting for application startup. INFO: Application startup complete.