下面这个是我在项目下面构建的项目目录结构,apps里面是所有的应用
于是下面我追加了项目的导包路径,方便导包
import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
经过排查发现报这个错误的原因是因为我导包的时候代码是这样写的:
from apps.users.models import BaseModel
from apps.courses.models import Course
于是我把apps去掉之后,就没有报错了:
from users.models import BaseModel
from courses.models import Course
总结:个人认为之所以会这么报错的原因是,我们添加了这两个导包路径之后。项目每次导包时都会从这些导包路径,然后往下开始找,首先就是找这些导包路径之下的apps文件夹,没有找到所以就开始报这样的错了。