Sono in procinto di creare un'interfaccia django-powered (1.3) in un pacchetto che fa molto affidamento su scipy.stats.stats (scipy versione 0.9.0), chiamato ovl
. Durante le prime fasi di sviluppo, utilizzando il proprio server di sviluppo djangos, questo non rappresentava un problema. Dopo la distribuzione con apache debian/2.2.9 e mod_wsgi 3.3, questo causa un problema serio.Utilizzo di scipy.stats.stats in django dopo la distribuzione
Qualsiasi sia la vista che sto tentando di caricare nel browser, inizia il caricamento e continua a farlo per 5 minuti (fino al timeout) e viene visualizzata una pagina di 500. Basta importare lavori scipy ma, fa non rendere scipy.stats.stats o anche scipy.stats disponibili. Questa non è una sorpresa; nella documentazione in scipy init .py si afferma che il subpackage stats
deve essere importato in modo esplicito. Tuttavia, lo stesso si dice sul subpackage cluster
, che importa in django (dal web e nel django-shell) senza alcun problema e in effetti compare in dir(scipy)
, che non è in un ipython (0.10 .2) -sessione, dove non si presenta, come mi aspettavo.
Al comando dir(scipy)
; restituisce risultati diversi quando proviene dal web (una lista di 568 stringhe, incluso il subpackage cluster
) nella normale shell ipython (stringhe 564, senza subpackage cluster
) e sorpresa, sorpresa, nella shell django. Nella shell django scipy ha 570 attributi, inclusi entrambi i pacchetti cluster
e stats
.
Un'altra cosa è, se continuo a importare il ovl
-package, pur mantenendo le importazioni scipy.stats ad un po 'di distanza (non in uno dei file della applicazione stessa), a volte ottengo un errore che indica ViewDoesNotExist che non c'è alcun indice di metodo nel modulo delle viste mentre ce n'è uno chiaramente. Che mi ricorda this.
Così ora sto pensando di queste piuttosto brutti soluzioni:
-
init di
- Editing SciPy per importare il pacchetto di statistiche in modo che appaia 'normalmente' a dir (SciPy) ed è accessibile attraverso scipy.stats ed io può usare il vecchio codice.
- Afferrando stat subpackage di SciPy e fare un pacchetto normale fuori di esso (magari utilizzando un link simbolico)
sono riluttante nell'applicazione di queste soluzioni, tuttavia. Il cluster di fatto si presenta in scipy in un ambiente di Django mi preoccupa un po '. Ho pensato che forse questo ha qualcosa a che fare con l'essere utente di www-data quando accedono dal web, ma non so come controllarlo.
Qualcun altro l'ha incontrato? Parti di questo? O altrimenti pensieri utili?
Oh e un'altra distribuzione di django funziona.
Utilizzando questa risposta ho cercato su Google e ho trovato [questa domanda] (http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API) e tramite ciò sia la soluzione che [spiegazione] (http: // code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API). Risolto mettendo ' \t WSGIApplicationGroup% {global} \t Ordinare consentire, negare \t Consentire da tutto \t ' nel mio httpd.conf. La seconda linea è la linea che fa qualcosa sui subinterpreti. –
koekiezorro