2013-05-29 9 views
7

Ich habe eine Django-Ansicht definiert, die scipy.optimize.curve_fit verwendet. Dies funktioniert ohne Probleme die django Entwicklungsserver verwenden, aber wenn ich die Django-Anwendung mit Apache bereitstellen und die View-Funktion mod_wsgi wird den Import curve_fit stecken:mit scipy in Django mit Apache und mod_wsgi

from scipy.optimize import curve_fit 

Wenn diese Linie den Rest der App entfernt funktioniert gut auf die Apache-Server. Warum funktioniert diese Zeile nicht mit Apache und mod_wsgi?

+1

Ist in Ihrer Apache-Installation der 'scipy' installiert? – J0HN

+0

scipy ist eine Python-Bibliothek, die auf dem Server installiert ist mit Pip –

+1

@ MigueldeVal-Borro ziemlich sicher, ich weiß, was das Problem ist, aber nur für den Fall. Auf dem Server haben Sie versucht, eine Python manage.py shell/shell_plus zu machen und scipy zu importieren, nur um zu überprüfen, ob das funktioniert? –

Antwort

8

In Ihrer WSGI-Datei wird Sie etwas, das wie folgt aussieht:

<VirtualHost> 
    ... 
    WSGIScriptAlias//somepath/deployment/wsgi/yoursite.wsgi 
</VirtualHost> 

Sie müssen die folgende Zeile hinzufügen:

<VirtualHost> 
    ... 
    WSGIScriptAlias//somepath/deployment/wsgi/yoursite.wsgi 
    WSGIApplicationGroup %{GLOBAL} 
</VirtualHost> 

Die Erklärung dafür finden Sie hier:

http://mail.scipy.org/pipermail/scipy-user/2011-November/031014.html

+0

Das funktioniert, vielen Dank! –

+2

Ich habe mehr als sechs Stunden gebraucht, um deine Antwort zu finden. Ich habe sogar meine eigene Frage niedergeschrieben und auf ähnliche Fragen hin Ihre Frage gestellt. Danke vielmals. –