Python ImportError:FastAPI用户

Python ImportError:FastAPI用户,python,sqlalchemy,fastapi,tortoise-orm,Python,Sqlalchemy,Fastapi,Tortoise Orm,从-有没有其他人得到了这项工作与乌龟甲虫?当我遇到以下错误时,您是否可以与我共享配置: module=importlib.import\u模块(module\u str) 文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/init.py”,第127行,在导入模块中 return _bootstrap._gcd_import(名称[级别:],包,级别) 文件“”,第1006行,在\u gcd\u

从-有没有其他人得到了这项工作与乌龟甲虫?当我遇到以下错误时,您是否可以与我共享配置:

module=importlib.import\u模块(module\u str)
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/init.py”,第127行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第1006行,在\u gcd\u导入中
文件“”,第983行,在_find_和_load中
文件“”,第967行,在“查找”和“加载”中解锁
文件“”,第677行,在\u加载\u解锁
exec_模块中第728行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“/main.py”,第4行,在
从fastapi_用户导入fastapi用户、模型
文件“/fastapi_users.py”,第7行,在
用户从fastapi_导入模型
ImportError:无法从“fastapi_用户”导入名称“模型”(./fastapi_users.py)
我需要确定您是否需要提供main.py文件?是否在fast-api_用户目录中

这是我的main.py文件:

从fastapi导入fastapi
从fastapi_用户导入fastapi用户、模型
从fastapi_users.authentication导入JWTAuthentication
从fastapi_users.db导入TortoiseBaseUserModel、TortoiseUserDatabase
从starlette.requests导入请求
来自tortoise.contrib.STARLETE进口登记簿
数据库URL=”sqlite://./test.db"
SECRET=“SECRET”
类用户(models.BaseUser):
通过
类UserCreate(用户,models.BaseUserCreate):
通过
类UserUpdate(用户,models.BaseUserUpdate):
通过
类UserDB(用户,models.BaseUserDB):
通过
类用户模型(陆龟类用户模型):
通过
user_db=tortoiseuser数据库(UserDB,UserModel)
app=FastAPI()
register_tortoise(app,db_url=DATABASE_url,modules={“models”:[“我在这里放什么?”]))
验证后端=[
JWT身份验证(机密=机密,生存时间=3600秒),
]
fastapi_用户=fastapi用户(
user\u db,auth\u backends,user,UserCreate,UserUpdate,UserDB,SECRET,
)
app.include_路由器(fastapi_users.router,prefix=“/users”,tags=[“users”]))
@fastapi_users.on_在注册()之后
在注册后在上定义(用户:用户,请求:请求):
打印(f“用户{User.id}已注册。”)
@fastapi_用户。在忘记密码后打开
忘记密码后在上定义(用户:用户,令牌:str,请求:请求):
打印(f“用户{User.id}忘记了密码。重置令牌:{token}”)
这个
[“我在这里放什么?”]
应该是具有用户模型的模块的python路径

因此,如果您的项目看起来像:

  • store/
    • users.py
      ->例如,这里定义了模型
    • main.py
您需要将其设置为
[“store.users”]

将其视为导入该模块时所放置的内容?e、 g.
导入存储。用户
或者如果更扁平,则可能是
导入用户

请仅使用完全限定的模块名,而不要使用相对的模块名,因为这样我们将无法找到将模型绑定到DB的模块

使用
main.py
作为入口点可能是个好主意,但不应该是必需的

另一个有趣的例子是:

模型在
models.py中,因为它在根目录中,
modules={“models”:[“models”]},
[“我在这里放什么?”]
应该是具有用户模型的模块的python路径

因此,如果您的项目看起来像:

  • store/
    • users.py
      ->例如,这里定义了模型
    • main.py
您需要将其设置为
[“store.users”]

将其视为导入该模块时所放置的内容?e、 g.
导入存储。用户
或者如果更扁平,则可能是
导入用户

请仅使用完全限定的模块名,而不要使用相对的模块名,因为这样我们将无法找到将模型绑定到DB的模块

使用
main.py
作为入口点可能是个好主意,但不应该是必需的

另一个有趣的例子是:


那里的模型位于
models.py
中,因为它位于根目录中,
modules={“models”:[“models”]},

欢迎使用SO!与外部资源的链接已断开。最好在这里展示您的相关项目结构。欢迎访问SO!与外部资源的链接已断开。最好在这里展示您的相关项目结构。