Estoy en el proceso de crear una interfaz django-powered (1.3) para un paquete que se basa en gran medida en scipy.stats.stats (versión scipy 0.9.0), llamado ovl
. Durante las primeras fases de desarrollo, utilizando el propio servidor de desarrollo de djangos, esto no fue un problema. Después del despliegue utilizando apache debian/2.2.9 y mod_wsgi 3.3, esto causa un problema grave.Uso de scipy.stats.stats en django después de la implementación
Cualquier vista que intente cargar en el navegador, comienza a cargarse, y sigue haciéndolo durante unos 5 minutos (hasta el tiempo de espera) y aparece una página de 500. Solo importa trabajos scipy, pero no hace que scipy.stats.stats o incluso scipy.stats estén disponibles. Esto no es sorpresa; en la documentación en scipy's init .py se indica que el subpaquete stats
debe importarse explícitamente. Sin embargo, lo mismo se dice sobre el subpaquete cluster
, que importa en django (de la web y en el django-shell) sin ningún problema y aparece en dir(scipy)
, que no en un ipython (0,10 .2) -session, donde simplemente no aparece, como esperaba.
En el comando dir(scipy)
; devuelve resultados diferentes cuando proviene de la web (una lista de 568 cadenas, incluido el subpaquete cluster
) en el shell ipython normal (564 cadenas, sin subpaquete cluster
) y sorpresa, sorpresa, en el shell django. En django shell scipy tiene 570 atributos, incluidos los paquetes cluster
y stats
.
Otra cosa es, si sigo importando el paquete ovl
, mientras mantengo las importaciones de scipy.stats a cierta distancia (no en uno de los archivos de la aplicación), a veces recibo un error de ViewDoesNotExist que indica que no hay índice de método en el módulo de vistas mientras que claramente hay uno. Lo que me recuerda a this.
Así que ahora estoy pensando en estas soluciones en lugar feos:
-
init del
- Edición scipy para importar el paquete de estadísticas por lo que parece 'normalmente' en dir (scipy) y es accesible a través scipy.stats y yo puede usar el código anterior
- Arrebatando sub-paquete de estadísticas de scipy y hacer un paquete normal fuera de él (tal vez mediante un enlace simbólico)
Soy reacio en la aplicación de estas soluciones, sin embargo. El grupo de hechos aparece en scipy en un entorno django me preocupa un poco. Pensé que tal vez esto tiene algo que ver con ser usuario de www-data al iniciar sesión en la web, pero no sé cómo verificarlo.
¿Alguien más se encontró con esto? Partes de esto? ¿O pensamientos útiles?
Oh y otra implementación de django funciona.
Utilizando esta respuesta busqué en Google y encontré [esta pregunta] (http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API) y con eso tanto la solución como [explicación] (http: // code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API). Resuelto poniendo ' \t WSGIApplicationGroup% {} GLOBAL \t Orden allow, deny \t Dejar de todas las \t ' en mi httpd.conf. La segunda línea es la línea que hace algo acerca de los sub intérpretes. –
koekiezorro