2010-09-12 19 views
33

wsgi kullanarak apache2 üzerinde bir flask uygulaması dağıtan bir sorun yaşıyorum. Aşağıdaki hata günlüklerini ve yapılandırma dosyalarını gönderdim. Etrafımı değiştirmeye çalışıyorum, onları yeniden adlandırabilirim, ama hepsi bana bir iç sunucu hatası veriyor. Alma hatasını neden aldığımı bilmiyorum. Herhangi bir giriş/öneri takdir, teşekkürler! İşte Apache2 üzerinde WSGI kullanarak Flask dağıtmaya çalışırken ithalat hataları nasıl çözülür

[Sun Sep 12 20:47:59 2010] [error] [client] mod_wsgi (pid=9753): Target WSGI script '/sites/flaskfirst/wsgi.py' cannot be loaded as Python module. 
[Sun Sep 12 20:47:59 2010] [error] [client] mod_wsgi (pid=9753): Exception occurred processing WSGI script '/sites/flaskfirst/wsgi.py'. 
[Sun Sep 12 20:47:59 2010] [error] [client] Traceback (most recent call last): 
[Sun Sep 12 20:47:59 2010] [error] [client] File "/sites/flaskfirst/wsgi.py", line 1, in <module> 
[Sun Sep 12 20:47:59 2010] [error] [client]  from app import app as application 
[Sun Sep 12 20:47:59 2010] [error] [client] ImportError: No module named app 

wsgi.py benim apache error.log olduğunu

# This is wsgi.py 
from app import app as application 

app.py

# This is app.py 
from flask import Flask, render_template 
import settings 

app = Flask(__name__) 
app.debug = settings.DEBUG 

from views.homepage import * 
from views.events import * 
from views.submit import * 
from views.feed import * 

if __name__ == "__main__": 
    app.run() 
İşte

dizin ağacının temelleri olan, sana vermek için bir fikir. İşte

/flaskfirst/ 
    /static/ 
    /templates/ 
    /views/ 
    __init__.py 
    app.py 
    wsgi.py 

apache sanal ana #pocoo de irc.freenode.org üzerinde zarf ve damjan için

<VirtualHost *:80> 
     ServerAdmin [email protected] 
     ServerName crath.org 
     DocumentRoot /sites/flaskfirst 

     # WSGI Settings 
     WSGIScriptAlias//sites/flaskfirst/wsgi.py 
     WSGIDaemonProcess flaskfirst user=sreustle group=general processes=1 threads=10 
     WSGIProcessGroup flaskfirst 

     # Static Directories 
     Alias /static /sites/flaskfirst/static/ 
     <Location "/static"> 
       SetHandler None 
     </Location> 

</VirtualHost> 

cevap

30

Teşekkür dosya, onlar beni bu sabit olsun yardımcı başardık. Sorun PythonPath doğru değildi. Biz şu wsgi.py

import sys 
sys.path.insert(0, "/sites/flaskfirst") 

from app import app 
application = app 
+4

aynı sorunu yapıyordu dahildir Böylece: biraz değişiklik yaptı. Httpd config dosyasımda WSGIDaemonProcess appName python-path =/home/... 'dosyasına ekledim. Doğru yer olup olmadığından emin değil, ancak FWIW bir seçenektir. WSGIDaemonProcess hakkında daha fazla bilgi: [link] (http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIDaemonProcess) – chris

+0

Çok çalışıyor, çok teşekkür ederim! –

+0

Teşekkürler! Benim günümü kurtardın! – Roomm

5
almak o çalışma için çözüm kullanılan

kullanarak bu sabit ama sys.path yolu çoğaltarak tuttu bu yüzden (bunu senin başına olmadığını görmek için dışarı yazabilirsiniz)

import sys 
flaskfirst = "/sites/flaskfirst" 
if not flaskfirst in sys.path: 
    sys.path.insert(0, flaskfirst) 

from app import app 
application = app 

yalnızca bir kez