Python、fastAPI、uvicorn - 加载 ASGI 应用程序时出错。无法导入模块 "main"

标签 python import fastapi uvicorn asgi

我在启动 uvicorn 时遇到问题。我对 python 和 fastapi 很陌生,所以我假设我做了一些非常愚蠢的事情。

我已将问题隔离在我的 api_router.py 文件中

from fastapi import APIRouter
from API.endpoints import user_endpoints

api_router = APIRouter()

api_router.include_router(user_endpoints, prefix="/user", tags=["User"])

当我注释掉 from API.endpoints import user_endpoints 并 api_router.include_router(user_endpoints, prefix="/user",tags=["User"]),则不会出现错误。我是否尝试错误地导入 user_endpoints.py 文件?我附上了目录结构的图像。

user_endpoints.py 看起来像这样:

from fastapi.routing import APIRouter
from typing import Optional, List
from API.schema.user import User
from models.user import Users
from main import db

router = APIRouter

@router.get('/users', response_model=List[User], status_code=200)
def get_all_users():
    users=db.query(Users).all()
    return users

@router.get('/users/{user_id}')
def get_user(user_id):
    pass
    
@router.post('/users')
def create_user():
    pass

@router.put('/users/{user_id}')
def update_user(user_id):
    pass

@router.delete('/users/{user_id}')
def delete_user(user_id):
    pass

enter image description here

任何有关此问题的帮助将不胜感激。

谢谢

格雷格

最佳答案

我认为它是在谈论你的终端的当前工作目录,当你向它输入 uvicorn main:app ... 时,无法找到 main。使终端的工作目录与 main.py

相同

关于Python、fastAPI、uvicorn - 加载 ASGI 应用程序时出错。无法导入模块 "main",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70400352/

相关文章:

python - 如何使用 HTTP Digest 进行身份验证?

python - 如何使用 python async 同时运行阻塞操作循环?

python - 如何捕获 SMTPRecipientsRefused 异常(使用远程 SMTP 服务器和 django)?

python 2.4 按特定列对文本文件进行排序

python - 通过 sys.modules 使虚拟包可用

java - 在OSGI中导入内部包

python - 如何避免Python中的循环导入?

python - 转换为列表理解

python-2.7 - 只有 Ciper 没有 importing , importerror 但对于其他模块如 Random in Crypto 则没有

python - Starlette JSONResponse 到 Pydantic parse_obj_as