Ошибка Python/Django Improperly Configured - Настройки не настроены
У меня есть проект Django под названием Veganet, который я пытаюсь подключить к двум другим приложениям с помощью flask, но когда я запускаю свой основной скрипт vega_flask_run.py, он выдает мне ошибку неправильной конфигурации. Источник ошибки исходит из скрипта models.py, а точнее из строки 2, где я объявляю из django.contrib.auth.models import User. Я пытался использовать несколько постов для решения моей проблемы, включая:
Ошибка "Неправильно настроенные параметры БД"
"settings.DATABASES неправильно настроен" ошибка при выполнении syncdb с django 1.9
Я пробовал их решения, которые в основном включают изменение переменной INSTALLED_APPS в моем проекте settings.py и изменение переменной DATABASES в settings.py, а также использование windows powershell для выполнения python manage.py shell
, django-admin.py shell --settings=mysite.settings
, а затем установка переменной DJANGO_SETTINGS_MODULE для указания на настройки моего проекта, и, наконец, использование
from django.core.management import setup_environ
from veganet import settings
setup_environ(settings)
как следует из ответа в первой ссылке.
вот ошибка полностью:
Exception has occurred: ImproperlyConfigured
Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
File "C:\Users\trevo\OneDrive\Desktop\veganet\profiles\models.py", line 2, in <module>
from django.contrib.auth.models import User
File "C:\Users\trevo\OneDrive\Desktop\veganet\profiles\forms.py", line 2, in <module>
from .models import ExperimentContext, Profile
File "C:\Users\trevo\OneDrive\Desktop\veganet\vega_ai\VegaMain.py", line 25, in <module>
from profiles.forms import ProfileModelForm, ExperimentModelForm
File "C:\Users\trevo\OneDrive\Desktop\veganet\vega_flask_run.py", line 5, in <module>
from vega_ai.VegaMain import app as frontend
Вот моя упрощенная структура файлов:
veganet (main folder)
-profiles (folder)
...
models.py (script that gives me the error)
signals.py
urls.py
utils.py
views.py
-vega_ai (folder)
VegaMain.py
...
-vega_net (folder)
...
asgi.py
settings.py
urls.py
views.py
wsgi.py
db.sqlite3
manage.py
vega_flask_run.py (where I am running the project)
мой файл settings.py:
мой скрипт wsgi.py:
import os
from django.conf import settings
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'veganet.settings')
application = get_wsgi_application()
models.py
from django.db import models
from django.contrib.auth.models import User
from django.dispatch.dispatcher import receiver
from .utils import get_random_code
from django.template.defaultfilters import slugify
import subprocess
...
Что именно я не настроил здесь? Спасибо
Если это Django, а не flask, как следует из названия vega_flask_run.py
, то вам нужно выполнить python manage.py runserver
, чтобы запустить приложение.
Это может быть дубликат Django ImproperlyConfigured for import User.
Кроме того, models.py
- это не скрипт, который вы запускаете в django так, как, я думаю, вы говорите. Это место, где находятся модели, которые вы определяете, классы, для вашего проекта.
Возможно, это я что-то упускаю. Может быть, вы можете отредактировать свой вопрос, указав файл vega_flask_run.py
. Возможно, вы используете его таким образом, который мне просто не знаком.
В противном случае, я предлагаю вам начать с https://docs.djangoproject.com/en/4.0/intro/tutorial01/. То есть, похоже, что вы уже правильно начали проект, поскольку у вас там есть файлы django. Возможно, дело только в том, как вы их запускаете.
Edit
.
Да, теперь я вижу, что вы пытаетесь запустить приложение djagno так, как если бы это было приложение flask, app = Flask(__name__, ...
. Несмотря на то, что и Flask, и Django являются python-фреймворками, они запускаются совершенно по-разному.