2012-02-16 47 views
2

我想從mod_wsgi加載一個從apache調用的python wsgi文件。我WSGI文件試圖移到sys.path與復位:Apache從django項目加載x.wsgi文件,沒有關聯__file__屬性

import os, sys 

root = os.path.join(os.path.dirname(__file__), '..') 
sys.path.insert(0, root) 

阿帕奇與抱怨: [Wed Feb 15 19:12:26 2012] [error] [client 127.0.0.1]

ImportError: Could not import settings 'mysite.settings' 

(Is it on sys.path?): No module named mysite.settings`

當我這樣做:

>>> dir('mysite.wsgi') 

它變得明顯wsgi文件不具有__file__屬性,所以我的sys.path沒有得到必要的目錄更新。

爲什麼這mysite.wsgi文件沒有__file__屬性?

+2

這不是如何'dir()'工作... – 2012-02-16 03:14:43

+0

它似乎爲我工作...我失蹤了什麼? – depling 2012-02-16 03:32:10

+0

試試'dir(str)'。 – 2012-02-16 03:33:01

回答

1

它應該工作,
但您也可以嘗試檢查以下代碼塊是否有幫助。

DIRNAME = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.append(DIRNAME) 
1

所得到的路徑設置爲「根」,必須是其中的Django settings.py位於和「mysite的」必須是目錄的名稱的目錄的父目錄。您對項目目錄的名稱或WSGI文件所在的位置沒有提及,因此無法告訴您代碼是如何錯誤的。

Apache下的代碼也將作爲特殊用戶運行,所以項目目錄必須對該用戶可訪問/可讀。

也許前去觀看:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

更好地瞭解如何設置這一切。

相關問題