django.core.exceptions.AppRegistryNotReady: Las aplicaciones no están cargadas todavía.(Django 2.0.1)(Python 3.6)
python-3.x pythonanywhere (5)
Ejecute el comando check django-admin para ver si ha detectado algún error.
python manage.py check
y / o
django-admin check
Es la primera vez que intento implementar una aplicación Django (django 2.0.1) (Python 3.6) en pythonanywhere, es una aplicación de portafolio simple sin modelos, sin bootstrap. Solo Django, HTML, CSS y Javascript.
Después de sacarlo del repositorio de Github en pythnanywhere con su consola bash, corro:
python manage.py migrate
& fue golpeado con este error:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-
packages/django/core/management/__init__.py", line 371, in
execute_from_command_line
utility.execute()
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-
packages/django/core/management/__init__.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-
packages/django/core/management/__init__.py", line 216, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-
packages/django/core/management/__init__.py", line 36, in load_command_class
module = import_module(''%s.management.commands.%s'' % (app_name, name))
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-
packages/django/core/management/commands/migrate.py", line 12, in <module>
from django.db.migrations.autodetector import MigrationAutodetector
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-
packages/django/db/migrations/autodetector.py", line 11, in <module>
from django.db.migrations.questioner import MigrationQuestioner
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-
packages/django/db/migrations/questioner.py", line 9, in <module>
from .loader import MigrationLoader
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-packages/django/db/migrations/loader.py", line 8, in <module>
from django.db.migrations.recorder import MigrationRecorder
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 9, in <module>
class MigrationRecorder:
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 22, in MigrationRecorder
class Migration(models.Model):
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-packages/django/db/models/base.py", line 100, in __new__
app_config = apps.get_containing_app_config(module)
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-packages/django/apps/registry.py", line 244, in get_containing_app_config
self.check_apps_ready()
File "/home/Limerin555/.virtualenvs/projectenv/lib/python3.6/site-packages/django/apps/registry.py", line 127, in check_apps_ready
raise AppRegistryNotReady("Apps aren''t loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren''t loaded yet.
Me cansé de buscar soluciones en cualquier lugar que pudiera encontrar, pero nada realmente ayuda, incluso he intentado agregar esta línea a mi configuración.py:
import django
django.setup()
debajo de esta línea:
SECRET_KEY = os.environ.get("SECRET_KEY")
Como se sugiere en este post , pero en vano.
Aquí está mi settings.py:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR, "templates")
STATIC_DIR = os.path.join(BASE_DIR, "static")
SECRET_KEY = os.environ.get(''SECRET_KEY'')
import django
django.setup()
DEBUG = False
ALLOWED_HOSTS = ["limerin555.pythonanywhere.com"]
INSTALLED_APPS = [
''django.contrib.contenttypes'',
''django.contrib.admin'',
''django.contrib.auth'',
''django.contrib.sessions'',
''django.contrib.messages'',
''django.contrib.staticfiles'',
''portfolio_showcase'',
]
MIDDLEWARE = [
''django.middleware.security.SecurityMiddleware'',
''django.contrib.sessions.middleware.SessionMiddleware'',
''django.middleware.common.CommonMiddleware'',
''django.middleware.csrf.CsrfViewMiddleware'',
''django.contrib.auth.middleware.AuthenticationMiddleware'',
''django.contrib.messages.middleware.MessageMiddleware'',
''django.middleware.clickjacking.XFrameOptionsMiddleware'',
]
ROOT_URLCONF = ''limerin.urls''
TEMPLATES = [
{
''BACKEND'': ''django.template.backends.django.DjangoTemplates'',
''DIRS'': [TEMPLATE_DIR,],
''APP_DIRS'': True,
''OPTIONS'': {
''context_processors'': [
''django.template.context_processors.debug'',
''django.template.context_processors.request'',
''django.contrib.auth.context_processors.auth'',
''django.contrib.messages.context_processors.messages'',
],
},
},
]
WSGI_APPLICATION = ''limerin.wsgi.application''
DATABASE_PATH = os.path.join(BASE_DIR, ''db.sqlite3'')
DATABASES = {
''default'': {
''ENGINE'': ''django.db.backends.sqlite3'',
''NAME'': DATABASE_PATH,
}
}
AUTH_PASSWORD_VALIDATORS = [
{
''NAME'':
''django.contrib.auth.password_validation.UserAttributeSimilarityValidator'',
},
{
''NAME'':
''django.contrib.auth.password_validation.MinimumLengthValidator'',
},
{
''NAME'':
''django.contrib.auth.password_validation.CommonPasswordValidator'',
},
{
''NAME'':
''django.contrib.auth.password_validation.NumericPasswordValidator'',
},
]
LANGUAGE_CODE = ''en-us''
TIME_ZONE = ''Asia/Singapore''
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_URL = ''/static/''
STATICFILES_DIRS = [
STATIC_DIR,
]
Estoy realmente perdido en esto, con la esperanza de que alguien pueda ayudarnos a aclarar cuál es el verdadero problema aquí.
Los documentos de Django dicen que django.setup carga la configuración de settings.py como su primer acto, por lo que parece una mala idea ejecutarlo en settings.py.
Intente comentar las aplicaciones en INSTALLED_APPS una por una; probablemente encontrará que una de ellas no se está cargando por algún motivo. Una vez que sepa cuál es, puede averiguar qué es lo que está mal.
Me tomó un tiempo entender que cada vez que ejecuta manage.py somecommand
, debe proporcionar las mismas configuraciones / variables de entorno que necesita cuando ejecuta ./manage.py runserver
.
Por ejemplo, cargo SECRET_KEY desde una variable de entorno en un archivo llamado .env
. Así que necesito hacer esto para hacer y ejecutar migraciones:
. .env
./manage.py makemigrations --settings=djangoproject.settings.development
./manage.py migrate --settings=djangoproject.settings.development
Puede haber varias razones para este error, pero todas están relacionadas con el archivo project/settings.py
.
- Comprueba si has inicializado
SECRET_KEY
en él. - Compruebe si tiene la aplicación en
INSTALLED_APPS
y no está instalada.
Superó la situación similar en este momento.
Todo lo que necesitas es esto:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "your_project.settings")
Y luego estas líneas:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Después de eso, puede importar fácilmente modelos sin AppRegistryNotReady: Apps aren''t loaded yet.
ACTUALIZACIÓN : Esto es realmente exactamente las 4 líneas de código del archivo wsgi.py en la carpeta de su proyecto.