Python 从 __init__.py 导入时出现导入错误

Python import error when importing from __init__.py

我在名为 users 的包中包含以下文件:

文件__init__.py:

from flask_sqlalchemy import SQLAlchemy
from .views import UserDetails, UserList

db = SQLAlchemy()

文件models.py:

from users import db

class User(db.Model):
    pass

和文件 views.py:

from .models import User
from users import db

#code

但是发生了以下导入异常:

Error: While importing "users", an ImportError was raised:

Traceback (most recent call last):
  File "/var/www/microservices/venv/lib/python3.6/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/var/www/microservices/Flask_Microservices/users/__init__.py", line 9, in <module>
    from .views import UserDetails, UserList
  File "/var/www/microservices/Flask_Microservices/users/views.py", line 5, in <module>
    from .models import User
  File "/var/www/microservices/Flask_Microservices/users/models.py", line 2, in <module>
    from users import db
ImportError: cannot import name 'db'

知道我的导入有什么问题吗?

胡乱猜测。尝试移动

from .views import UserDetails, UserList

db = SQLAlchemy()下面所以看起来像

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

from .views import UserDetails, UserList

当您从视图执行导入时,它会尝试从 views.py 文件中的 init.py 导入数据库。它还不存在,所以会发生错误。至少我是这么认为的。