2012-04-21 10 views
6

Después de actualizar a Django 1.4, ahora me sale el siguiente mensaje de error:Django aplicación en Eclipse no se ejecutará después de la actualización a Django 1.4

raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e)) 
ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named py 

leí que podría tener algo que ver con pydev 2.4 por ejemplo, : here, así que actualicé pydev a la última versión, 2.5. Estoy usando eclipse índigo.

Empecé a echar un vistazo a la configuración de ejecución, y noté que el huevo de django 1.3 todavía estaba siendo referenciado. Así que fui a windows/preferences/pydev/intérprete-python, y el huevo 1.3 estaba siendo referenciado en el camino PYTHON del sistema.

Para tratar de corregir esto, eliminé el intérprete de python existente y volví a agregar uno nuevo. Mi pitón se ejecuta desde venv, así que agregué esto. Un error aparece:

Error message

no creo que esto está relacionado, pero puedo ver que/Venv/lib tiene aparece en la lista Sistema PYTHONPATH, mientras que en la carpeta de Windows se llama/Venv/Lib, así que agregué esto también. Aún así, el nuevo huevo de django no se ha incluido, por lo que lo agregué manualmente en la ventana 'Bibliotecas'.

Sin embargo, sigo recibiendo el mensaje de error.

La aplicación funciona bien desde la línea de comandos.

Respuesta

5

Me di cuenta de esto después de unas horas de probar cosas diferentes.

He creado un nuevo proyecto de Django usando la pydev 2.5 sólo para ver lo que sucedería, y me di cuenta que la entrada 'módulo de configuración de Django' (véase más adelante) era appname.settings. Anteriormente había puesto 'settings.py'. Eliminé la entrada por completo, lo que solucionó el primer problema.

enter image description here

Después de esto estaba recibiendo un 'módulo nombreaplic no encontrado' de error, por lo que intentaron poner un archivo __init__.py vacía en la raíz de mi aplicación, que parecía funcionar.

+3

que experimentaron un problema similar. He puesto 'mysite.settings' como el módulo de configuración de Django y mi aplicación Django se ejecuta y depura bien. –

+0

Es bastante frustrante que PyDev no solicite esto o no lo lea del literal de cadena en manage.py (o al menos se queje si olvidó configurarlo) al crear una configuración de ejecución para un proyecto importado. Pero sí, establecer este campo también lo solucionó para mí. ¡Gracias! –

1

En un virtualenv, este es generalmente el caso en el que olvidó agregar/Lib de la instalación base de python durante el proceso de instalación (por lo tanto, al buscar en PYTHONPATH no encuentra cosas como 'threading.py' o 'traceback.py', etc.

0

que resolvió este problema añadiendo lo siguiente a manage.py:.

import os 

os.environ['DJANGO_SETTINGS_MODULE'] = '<django_app_folder>.settings' 
os.environ['SERVER_NAME'] = '<name_of_server>' 

<django_app_folder> es el nombre de la carpeta que contiene el archivo settings.py

<name_of_server> tiene que estar allí, pero no creo que importe lo que está configurado.

0

Tuve este problema. Mi proyecto no tenía una propiedad PyDev - Django, por lo que la otra solución aquí no funcionaba. Creo que esto se debe a que inicialmente no lo creé como un proyecto de Django. En cambio, lo que funcionó fue:

  1. haga clic derecho en proyecto> propiedades> PyDev PYTHONPATH> Variables de sustitución de cadena.
  2. Agregar una variable llamada DJANGO_SETTINGS_MODULE Su valor debe ser yourapp.settings (o editarlo si ya existe)
Cuestiones relacionadas