2013-01-11 48 views
0

我正在嘗試使用Flask,wsgi和apache2建立一個簡單的網站。我收到以下錯誤試圖從site.py導入site.wsgi:使用Flask與wsgi和Apache2導入錯誤

[Fri Jan 11 16:42:20 2013] [error] [client 174.48.34.188] mod_wsgi (pid=15170): Target WSGI script '/home/www/site/site.wsgi' cannot be loaded as Python module. 
[Fri Jan 11 16:42:20 2013] [error] [client 174.48.34.188] mod_wsgi (pid=15170): Exception occurred processing WSGI script '/home/www/site/site.wsgi'. 
[Fri Jan 11 16:42:20 2013] [error] [client 174.48.34.188] Traceback (most recent call last): 
[Fri Jan 11 16:42:20 2013] [error] [client 174.48.34.188] File "/home/www/site/site.wsgi", line 1, in <module> 
[Fri Jan 11 16:42:20 2013] [error] [client 174.48.34.188]  from site import app as application 
[Fri Jan 11 16:42:20 2013] [error] [client 174.48.34.188] ImportError: cannot import name app 

這裏是我的site.py:

from flask import Flask, render_template 

app = Flask(__name__) 

@app.route('/') 
def home_page(): 
    return render_template('index.html') 

app.debug = True 
if __name__ == '__main__' 
    app.run() 

這裏是我的site.wsgi:

from site import app as application 

這裏是我的Apache配置:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName mywebsite.here 
    DocumentRoot /home/www/site 

    WSGIDaemonProcess site user=${APACHE_RUN_USER} group=${APACHE_RUN_GROUP} threads=5 
    WSGIScriptAlias//home/www/site/site.wsgi 

    <Directory /home/www/site> 
     WSGIProcessGroup site 
     WSGIApplicationGroup %{GLOBAL} 
     WSGIScriptReloading On 
     Order deny,allow 
     Allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/error.log 
</VirtualHost> 

我搜索了一段時間試圖找出這一點,但我很難過。我對網頁設計也相當陌生,所以它可能是一些愚蠢的東西。提前致謝。

+0

您的代碼不與錯誤匹配,你確定你的權利的問題複製一切?錯誤聲明「無法導入名稱應用程序」,但是在您的代碼中,您有「來自網站導入應用程序」 –

+0

回溯中的代碼行與文件中的內容不匹配。仔細檢查你是否正確保存了文件,並確保它們保存在正確的位置。 – Anorov

+0

也將site.py重命名爲其他名稱,因爲它很可能與Python的標準庫中的site.py發生衝突。 –

回答

1

找到了答案 - 正如Audrius在評論中所說的,這是一個衝突,因爲我將文件命名爲site.py。我改成了mysite.py無處不在必要並添加以下內容mysite.wsgi(原名site.wsgi):

import sys 
sys.path.insert(0, '/home/www/mysite.wsgi') 
相關問題