Gracias por compartir el problema y solución para fomentar el crecimiento de la comunidad Django en Quijost.
Nos gustaría comentar que Django y otros módulos python están
instalados por defecto en todos los servidores compartidos de Quijost, por lo que no es necesario instalarlo bajo la cuenta propia del usuario (a menos que ser requiera de alguna
configuración especial, que en cuyo caso podemos ayudar a facilitarla también).
De esta forma no sería necesario tampoco añadir al path del sistema estas rutas:
sys.path.append('/home/USUARIO/public_html/modules')
sys.path.append('/home/USUARIO/public_html/modules/django')
sys.path.append('/home/USUARIO/public_html')
La ruta de
Django para Python 2.7 se encuentra en /usr/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg. Luego usando el binario python2.7 del sistema se busca por defecto.
Se recomienda tambien usar un
shebang correcto llamando al binario python a través del binario "env", ya que hay configurados python2.4, python2.6 y python2.7. La
manera más correcta de llamar al binario más actualizado es con:
#!/usr/bin/env python
O por ejemplo, para asegurar la ejecución con alguna
versión específica, por ejemplo python2.7:
#!/usr/bin/env python2.7
Por último comentar, que establecer un
directorio incorrecto para trac-eggs puede generar problemas a la hora de usar por ejemplo el módulo MySQLdb (al ser cargado por la variable db['ENGINE'] del settings.py), ya que no podrá descomprimir correctamente el egg y generará errores del tipo:
Error loading MySQLdb module: /tmp/trac-eggs/MySQL_python-1.2.3-py2.7-linux-x86_64.egg-tmp/_mysql.so: failed to map segment from shared object: Operation not permitted
Que pueden producir el
error 500 antes mencionado, lanzando una
excepción ImproperlyConfigured en el error_log general de apache.