我试图从下面的包结构导入noun0.routes
,但是我得到了ImportError: cannot import name db
。为什么我会遇到这个错误,我该如何修复它?在
├── some_rest_api
│ ├── noun0
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── routes.py
│ ├── noun1
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── routes.py
│ ├── routes.py
│ ├── utils.py
│ └── __init__.py
├── requirements.txt
└── setup.py
some_rest_api/__init__.py
some_rest_api/noun0/models.py
from some_rest_api import db
您已经创建了一个循环导入情况。},它试图导入{}。但是,
__init__.py
导入noun0.routes
,它导入{__init__.py
还没有达到定义db
的程度,它仍在尝试完成导入。在在路由导入(或其导入链)依赖的所有定义之后移动它们。在
This situation is mentioned in the Flask docs at the bottom of this page.
我将您的导入从
from noun0.routes
更改为from some_rest_api.noun0.routes
。您使用的是一种旧的、容易出错的相对导入模式。这个行为在python3中被删除了。最好是使用绝对导入(如我所做的那样),或者对相对导入使用点表示法:from .. import db
表示“从我现在的位置上升两个级别。在相关问题 更多 >
编程相关推荐