django.setup(): ModuleNotFoundError: 设置 DJANGO_SETTINGS_MODULE 时没有名为“api.apps”的模块
Posted
技术标签:
【中文标题】django.setup(): ModuleNotFoundError: 设置 DJANGO_SETTINGS_MODULE 时没有名为“api.apps”的模块【英文标题】:django.setup(): ModuleNotFoundError: No module named 'api.apps' when DJANGO_SETTINGS_MODULE is set 【发布时间】:2022-01-06 12:58:41 【问题描述】:我正在尝试从外部 Python 脚本向 Django 数据库添加条目,但在尝试导入我的 Django 模型时遇到了错误。 我对数据库和单个 Python 脚本都使用 venv
我使用以下链接:django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured 在导入我的模型之前尝试设置 Django,但现在我遇到了以下错误: ModuleNotFoundError:没有名为“api.apps”的模块
我还将 Python 路径设置在我的项目目录的顶部,位于我的数据库和 Python 脚本之上。
我尝试创建的 Python 文件与我的数据库位于不同的文件夹中,代码如下: (请注意,我的 Django 数据库名称是 database,也是主要部分。我将“api”作为单独的目录。)
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.database.database.settings')
import django
django.setup()
from database.api.models import Example
这在 django.setup() 上失败。我已经用“from database.database.wsgi import *”做了一个替代尝试,导致同样的错误。
我不确定是什么原因造成的,因为当我运行数据库时,“api”中的模型看起来很好,我确实将 api 添加到“INSTALLED_APPS”。
这是我的 database.settings.py 中的 INSTALLED_APPS:
INSTALLED_APPS = [
'api.apps.ApiConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
]
“api.apps”是我项目中的一个基本文件,除了默认行为之外,我对它没有做太多的事情。
什么仍然会导致 API.apps 出现 ModuleNotFoundError?
【问题讨论】:
放下api.apps.ApiConfig @sarangkkl 你能澄清一下在哪里放置 api.apps.ApiConfig 吗?如果您的意思是在 INSTALLED_APPS 中,它已经存在。或者你的意思是 Python 脚本中的某个地方? 【参考方案1】:INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'api.apps.ApiConfig',
'rest_framework',
]
抱歉重播晚了,但这就是我要说的,您需要将创建的应用程序放在静态文件之后,记住始终使用解释性编程语言中的 python
【讨论】:
如果不起作用,可能是您的应用名称有问题,所以最好的办法是分享您的文件层次结构 您可以通过 sarangkkl@hotmail.com 直接与我联系 啊,我明白了!知道这对未来很好。我最终选择了另一种方式(使用 Django 命令)以上是关于django.setup(): ModuleNotFoundError: 设置 DJANGO_SETTINGS_MODULE 时没有名为“api.apps”的模块的主要内容,如果未能解决你的问题,请参考以下文章