Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
Django: no se puede importar 'módulo'. Compruebe que el módulo AppConfig.name es correcto

Puede parecer una pregunta ya respondida, en realidad aquí tienes el mismo problema (más o menos) que tuve yo. Mi problema es que es solo un truco, una línea, sin explicación (y aún así es diferente, pero la solución dada funciona, y eso es parte de mi problema). Aquí está la estructura de mi proyecto, simplificada:

 manage.py compfactu/---settings.py |--__init__.py |--core/--------__init__.py |-apps.py

Así es como agregué mi aplicación en INSTALLED_APPS :

aplicaciones.py

 from django.apps import AppConfig class CoreConfig(AppConfig): name = 'core'

configuración.py

 INSTALLED_APPS = [ ... #compfactu modules 'compfactu.core.apps.CoreConfig', ]

Mientras leo la documentación de django 1.11, y cito:

Las nuevas aplicaciones deben evitar default_app_config. En su lugar, deberían requerir que la ruta punteada a la subclase AppConfig apropiada se configure explícitamente en INSTALLED_APPS.

Bueno, es una aplicación nueva, así que debería hacer eso: pero recibo un error. Y no es un problema de pythonpath, porque acabo de abrir un shell de python y puedo hacer from compfactu.core.apps import CoreConfig sin problema (imprima el sys.path también, todo está bien).

Pero tengo este error, aquí hay un seguimiento completo:

 Traceback (most recent call last): File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/apps/config.py", line 147, in create app_module = import_module(app_name) File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 986, in _gcd_import File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked ImportError: No module named 'core' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper fn(*args, **kwargs) File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run autoreload.raise_last_exception() File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception six.reraise(*_exception) File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise raise value.with_traceback(tb) File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper fn(*args, **kwargs) File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/__init__.py", line 27, in setup apps.populate(settings.INSTALLED_APPS) File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/apps/registry.py", line 85, in populate app_config = AppConfig.create(entry) File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/apps/config.py", line 151, in create app_name, mod_path, cls_name, django.core.exceptions.ImproperlyConfigured: Cannot import 'core'. Check that 'compfactu.core.apps.CoreConfig.name' is correct.

Y a partir de ahí, todos los archivos y clases han sido generados por django (manage.py startapp). Y cuando realmente hago lo que se dice en la pregunta que vinculé arriba, hago lo siguiente:

 INSTALLED_APPS = [ ... #compfactu modules 'compfactu.core', ]

funciona ! ¡Y no entiendo ese punto! Al leer el documento (la parte que acabo de citar), NO DEBERÍA funcionar (observando que no tengo un default_app_config en mi __init__.py .

Entonces, como la pregunta donde encontré el "truco" pero sin explicación, estoy aquí preguntando por qué funciona de esta manera cuando no debería, y por qué la solución en el documento oficial no funciona.

Gracias de antemano por su tiempo.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

De acuerdo con la documentación, AppConfig.name es una ruta completa de python a la aplicación.

AppConfig.nombre

Ruta completa de Python a la aplicación, por ejemplo, 'django.contrib.admin' .

Este atributo define a qué aplicación se aplica la configuración. Debe establecerse en todas las subclases de AppConfig .

Debe ser único en un proyecto de Django.

https://docs.djangoproject.com/en/2.2/ref/applications/#django.apps.AppConfig.name

Prueba esto:

 class CoreConfig(AppConfig): name = 'compfactu.core'
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda