Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Deja tu post en el foro para hacer algun tipo de consulta

Autor Tema: Error 500 con django  (Leído 51809 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

MalaLeche

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 13
    • Ver Perfil
Error 500 con django
« en: Noviembre 20, 2011, 19:22:18 pm »

Hola, estoy tratando de subir un proyecto con los ejemplos que encontré en el foro, pero no logro que se muestren yen el error.log no hay detalles del error, dejo mi configuración.

.htaccess
Código: [Seleccionar]
# htaccess for wsgi

SetHandler wsgi-script
RewriteEngine on

RewriteCond %{REQUEST_URI} !(django.wsgi)
RewriteRule ^(.*)$ django.wsgi/$1 [L]

django.wsgi

Código: [Seleccionar]
#django.wsgi
import os
import sys

path = '/home/malalech/public_html'
path = '/home/malalech/public_html/puebas'

if path not in sys.path:
    sys.path.append(path)

os.environ["DJANGO_SETTINGS_MODULE"] = "pueba.settings"

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

No veo el error en la configuración, espero sus comentarios.

Saludos
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #1 en: Noviembre 21, 2011, 07:51:50 am »

Hola y bienvenido,

Con cPanel tenemos algunas limitaciones para el error_log en Django y estos errores se escriben en el error_log general de root.

En el foro hay algun tema, donde se explica como capturar los errores de la salida estándar de Python a un archivo o bien capturar las excepciones para poder realizar una depuración.

No obstante, no tenemos problema en buscar y mostraros el error cuando no funcione vuestra aplicación Django.

En concreto tu problema parece ser el siguiente:

Código: [Seleccionar]
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX] mod_wsgi (pid=13889): Exception occurred processing WSGI script '/home/malalech/public_html/django.wsgi'.
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX] Traceback (most recent call last):
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/core/handlers/wsgi.py", line 250, in __call__
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]     self.load_middleware()
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/core/handlers/base.py", line 39, in load_middleware
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/utils/functional.py", line 276, in __getattr__
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]     self._setup()
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/conf/__init__.py", line 42, in _setup
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]     self._wrapped = Settings(settings_module)
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/conf/__init__.py", line 89, in __init__
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Mon Nov 21 07:43:44 2011] [error] [client XXX.XXX.XXX.XXX] ImportError: Could not import settings 'pueba.settings' (Is it on sys.path?): No module named pueba.settings

Luego parece ser, que recibes un ImportError ya que no encuentra en las rutas que estas definiendo el archivo de pueba.settings y esto se interpreta como un error 500.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

MalaLeche

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 13
    • Ver Perfil
Re:Error 500 con django
« Respuesta #2 en: Noviembre 21, 2011, 14:05:08 pm »

Gracias por tu respuesta shakan, pero sigo con el problema modifique mi django.wsgi de la siguiente manera:

Código: [Seleccionar]
#django.wsgi

import os, sys

sys.path.append('/home/malalech/public_html')
sys.path.append('/home/malalech/public_html/')
sys.path.append('/home/malalech/public_html/pueba')
sys.path.append('/home/malalech/public_html/pueba/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'pueba.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp/trac-eggs'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

y el .htaccess sigue de la misma manera, espero me puedas ayudar ya que no doy con el problema, gracias por su ayuda.
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #3 en: Noviembre 21, 2011, 15:35:31 pm »

No has realizado bien la modificación. Tu problema no esta en las rutas, sino que no se encuentra el archivo pueba.settings en las rutas que especificas, ya que tampoco existe ningún archivo pueba.settings. Debes crear pueba.settings y especificar su configuración de Django.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

MalaLeche

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 13
    • Ver Perfil
Re:Error 500 con django
« Respuesta #4 en: Noviembre 21, 2011, 15:53:13 pm »

No has realizado bien la modificación. Tu problema no esta en las rutas, sino que no se encuentra el archivo pueba.settings en las rutas que especificas, ya que tampoco existe ningún archivo pueba.settings. Debes crear pueba.settings y especificar su configuración de Django.

Hola, no se supone que el wsgi toma el settings.py del proyecto? que esta dentro de puebas? jamas tuve la necesidad de crear algún archivo diferente en proyectos anteriores, me puedes explicar mejor, saludos y gracias por tu ayuda.
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #5 en: Noviembre 21, 2011, 16:12:18 pm »

Django obtiene el setttings.py por defecto si no defines otra configuración.

En el código tienes:

Código: [Seleccionar]
os.environ['DJANGO_SETTINGS_MODULE'] = 'pueba.settings'

Luego esta buscando dicho módulo y no encuentra el archivo que debes crear.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

MalaLeche

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 13
    • Ver Perfil
Re:Error 500 con django
« Respuesta #6 en: Noviembre 21, 2011, 16:25:35 pm »

Django obtiene el setttings.py por defecto si no defines otra configuración.

En el código tienes:

Código: [Seleccionar]
os.environ['DJANGO_SETTINGS_MODULE'] = 'pueba.settings'

Luego esta buscando dicho módulo y no encuentra el archivo que debes crear.

Y como tendría que ir esa linea para que tome el settings.py???

disculpa por las molestias, saludos.
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #7 en: Noviembre 21, 2011, 19:04:12 pm »

Esa línea no tiene que ir en el settings.py. Unicamente debes crear el archivo pueba.settings
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

MalaLeche

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 13
    • Ver Perfil
Re:Error 500 con django
« Respuesta #8 en: Noviembre 21, 2011, 19:12:00 pm »

Esa línea no tiene que ir en el settings.py. Unicamente debes crear el archivo pueba.settings

Hola, creo que no me entiendes, yo no tengo esa linea en el settings.py
Código: [Seleccionar]
os.environ['DJANGO_SETTINGS_MODULE'] = 'pueba.settings'esa linea está en el django.swgi y lo que quiero es que el wsgi encuentre el archivo settings.py de mi proyecto, sin necesidad de crear el archivo pueba.settings, espero ahora si entiendas, saludos.
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #9 en: Noviembre 21, 2011, 19:17:01 pm »

Si te entiendo, esa linea que esta en tu django.wsgi, define donde buscar el archivo de settings.

Si la quitas, buscara por defecto el settings.py, si la dejas, buscara el archivo que pones en este caso pueba.settings.

Luego si no quieres que sea el archivo pueba.settings y sea el settings.py, elimina dicha linea.

Más información en la documentación de Django:
https://docs.djangoproject.com/en/dev/topics/settings/#designating-the-settings
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

MalaLeche

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 13
    • Ver Perfil
Re:Error 500 con django
« Respuesta #10 en: Noviembre 21, 2011, 19:35:08 pm »

Si te entiendo, esa linea que esta en tu django.wsgi, define donde buscar el archivo de settings.

Si la quitas, buscara por defecto el settings.py, si la dejas, buscara el archivo que pones en este caso pueba.settings.

Luego si no quieres que sea el archivo pueba.settings y sea el settings.py, elimina dicha linea.

Más información en la documentación de Django:
https://docs.djangoproject.com/en/dev/topics/settings/#designating-the-settings

Sigo con problema error 500 y ese es mi django.wsgi
Código: [Seleccionar]
#django.wsgi

import os, sys

sys.path.append('/home/malalech/public_html/puebas')
sys.path.append('/home/malalech/public_html')

os.environ['PYTHON_EGG_CACHE'] = '/tmp/trac-eggs'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

incluso eliminando
Código: [Seleccionar]
os.environ['PYTHON_EGG_CACHE'] = '/tmp/trac-eggs'

sigue sin cargar mi proyecto, me puedes mostrar mis log.
« última modificación: Noviembre 21, 2011, 19:38:40 pm por MalaLeche »
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #11 en: Noviembre 21, 2011, 19:43:43 pm »

Esto muestran tus logs:

Código: [Seleccionar]
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX] mod_wsgi (pid=30516): Exception occurred processing WSGI script '/home/malalech/public_html/django.wsgi'., referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX] Traceback (most recent call last):, referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/core/handlers/wsgi.py", line 250, in __call__, referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]     self.load_middleware(), referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/core/handlers/base.py", line 39, in load_middleware, referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]     for middleware_path in settings.MIDDLEWARE_CLASSES:, referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/utils/functional.py", line 276, in __getattr__, referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]     self._setup(), referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]   File "/usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/conf/__init__.py", line 40, in _setup, referer: http://malaleche.quijost.com/
[Mon Nov 21 19:36:27 2011] [error] [client XXX.XXX.XXX.XXX]     raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE), referer: http://malaleche.quijost.com/

Te aconsejo poner:

Código: [Seleccionar]
try:
    application = django.core.handlers.wsgi.WSGIHandler()
except Exception, e:
   print e

Así podrás capturar cualquier excepción que se lance en tu aplicación sin necesidad de consultar los logs.

Como ves, el propio wsgi, te obliga a definir la variable en algún sitio. Si no quieres ahi, puedes definirla en el  __init__.py de tu proyecto, pero debes definir la variable con el archivo antes de inicializar.
 
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

MalaLeche

  • Usuario nuevo
  • *
  • Karma: +0/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 13
    • Ver Perfil
Re:Error 500 con django
« Respuesta #12 en: Noviembre 21, 2011, 23:11:53 pm »

Buscando informacion arregle mi django.wsgi como sigue:

Código: [Seleccionar]
#!/usr/bin/python

import os, sys

d =  os.path.dirname(__file__)
if (d not in sys.path):
sys.path.append(d)

os.environ['DJANGO_SETTINGS_MODULE'] = 'puebas.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp/trac-eggs'

import django.core.handlers.wsgi

try:
application = django.core.handlers.wsgi.WSGIHandler()
except Exception, e:
print e

y si lo ejecuto por ssh me sale el siguiente error:

Código: [Seleccionar]
Traceback (most recent call last):
  File "./django.wsgi", line 12, in ?
    import django.core.handlers.wsgi
ImportError: No module named django.core.handlers.wsgi

espero me puedas ayudar
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #13 en: Noviembre 22, 2011, 10:22:37 am »

Prueba con lo siguiente:

Código: [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, sys

d =  os.path.dirname(__file__)
if (d not in sys.path):
sys.path.append(d)

sys.path.append('/usr/local/django')
sys.path.append('/usr/lib/python2.6/site-packages/')
sys.path.append('/usr/lib/python2.7/site-packages/')

sys.stdout = sys.stderr

os.environ['DJANGO_SETTINGS_MODULE'] = 'puebas.settings'
os.environ['PYTHON_EGG_CACHE'] = '/tmp/trac-eggs'

import django.core.handlers.wsgi

try:
_application = django.core.handlers.wsgi.WSGIHandler()
except Exception, e:
print e
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:Error 500 con django
« Respuesta #14 en: Noviembre 22, 2011, 11:12:53 am »

Creo que ya he encontrado tu problema.

Estas ejecutando python2.4, donde no tenemos instalado Django, debes invocar a python2.6 o python2.7.

Fijate que los paths estan relativos a 2.4 porque es el binario que estas invocando.

Puedes cambian la primera linea por /usr/bin/env python o bien
#/usr/bin/python2.7

Para asegurarte. Con eso no debería darte ya ningún problema más.
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support
 

Página generada en 0.154 segundos con 34 consultas.