Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.1K
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!