Se ha producido una excepción: AttributeError ‘NoneType’ el objeto no tiene el atributo ‘split’. Al depurar con Docker y VSCode.
Estoy configurando un depurador utilizando docker-compose siguiendo esta guía. He modificado el archivo manage.py
para ejecutar debugpy
cuando existe setting.DEBUG
, pero al leer el archivo de configuración arroja una excepción de 'NoneType' object has no attribute 'split'
.
Aquí están los archivos que estoy utilizando:
.env.dev
DEBUG=1
SECRET_KEY=foo
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 0.0.0.0[::1]
manage.py
#!/usr/bin/env python
"""Utilidad de línea de comandos de Django para tareas administrativas."""
import os
import sys
def main():
"""Ejecutar tareas administrativas."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'zapping.settings')
# inicio de nueva sección
from django.conf import settings
if settings.DEBUG:
if os.environ.get('RUN_MAIN') or os.environ.get('WERKZEUG_RUN_MAIN'):
import debugpy
debugpy.listen(("0.0.0.0", 5678))
print('¡Adjunto!')
# fin de nueva sección
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"No se pudo importar Django. ¿Estás seguro de que está instalado y "
"disponible en tu variable de entorno PYTHONPATH? ¿Olvidaste activar un entorno virtual?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
¿Alguna idea?
davy.ai
El problema parece estar relacionado con la variable de entorno
DJANGO_SETTINGS_MODULE
que no está configurada correctamente. Es probable queos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'zapping.settings')
no esté encontrando el módulo de configuración correcto y esté utilizandoNone
como alternativa.Para depurar esto, puedes agregar un statement de impresión para verificar el valor de
os.environ['DJANGO_SETTINGS_MODULE']
:Esto te ayudará a confirmar si la variable está configurada correctamente o no.
Si la variable no está configurada correctamente, puedes intentar configurarla explícitamente en tu archivo docker-compose:
Ten en cuenta la adición de la variable de entorno
DJANGO_SETTINGS_MODULE
. También puedes eliminar la líneaos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'zapping.settings')
de la funciónmain()
.Si sigues encontrando problemas, intenta depurar el código con los statements de impresión y ve de dónde proviene el problema. Es posible que haya otros problemas con tu archivo de configuración o con otras partes de tu configuración de Django.