在子目录创建Django应用后添加至INSTALLED_APPS遇ImportError求助
解决Django子目录应用添加到INSTALLED_APPS的ImportError问题
你遇到的这个问题很常见,核心原因是Django找不到你放在子目录里的应用模块——你直接在INSTALLED_APPS里写appName,但Python只会从项目根目录开始查找模块,你的应用在subFolder下面,自然找不到对应模块。
下面是具体的解决步骤:
第一步:确保子目录是Python可识别的包
检查subFolder目录下有没有__init__.py文件(空文件即可)。如果没有,手动创建一个——Python需要这个文件把目录标记为“可导入的包”。第二步:用完整的包路径添加到INSTALLED_APPS
把INSTALLED_APPS里的appName改成subFolder.appName,示例代码如下:INSTALLED_APPS = [ # 其他默认应用... 'subFolder.appName', ]如果你的应用在更深的层级(比如
subFolder1/subFolder2/appName),就写subFolder1.subFolder2.appName,用点号连接所有父目录。第三步:确认应用的AppConfig配置正确
打开subFolder/appName/apps.py,检查AppConfig类的name字段是不是subFolder.appName——用startapp命令创建的话应该已经自动生成了,但最好确认一下:from django.apps import AppConfig class AppnameConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'subFolder.appName' # 这里必须是完整路径
做完这些之后,运行python manage.py makemigrations和python manage.py migrate测试一下,应该就能正常识别你的应用了。
内容的提问来源于stack exchange,提问作者pyt ho9
相关产品推荐
相关产品推荐

