2011-09-30 70 views
0

對於settings.py中的各種設置(MEDIA_ROOT,TEMPLATE_DIRS),它被指示給出絕對路徑。我已經使用mod_wsgi.I配置了apache在名爲apache的文件夾中有一個wsgi腳本,該文件夾重定向到settings.pydjango中settings.py的相對路徑

import os 
import sys 

path = 'D:/Projects/Dan' 

if path not in sys.path: 
    sys.path.append(path) 

os.environ['DJANGO_SETTINGS_MODULE'] = 'Django.settings' 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

(不要誤會 - Django是我的項目的名稱)

好吧,我的問題是 - 現在我們已經導入的路徑,我的工程系統路徑的WSGI腳本,ISN如果我錯了,請告訴我標準過程,以便我可以將一個文件中的所有路徑設置爲3個文件以外的其他文件(Apache-httpd .conf,mod_wsgi - django.wsgi,django - settings.py)。

回答

5

用途:

import os 
this_directory = os.path.dirname(__file__) 

然後:

absolute_directory = os.path.join(this_directory, 'relative.txt') 

BTW,呼喚你的項目 '的Django' 是不明智因爲Django的包本身是'Django的。您不應該依賴不會導致混淆的情況下的差異。簡而言之,Python軟件包/模塊名稱應該與大小寫不同。您的站點項目目錄被視爲Python包,因此也是問題所在。

+0

我有我的訂單。沒有選擇..我的問題是因爲我的項目目錄已經在系統路徑中爲什麼我不能使用相對路徑? – Jibin

+0

由於sys.path是模塊搜索路徑,與文件系統當前工作目錄完全不同。當前的工作目錄可以是Apache下的任何目錄,並且不會是使用Django開發服務器時manage.py的目錄。請參閱文檔http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Application_Working_Directory –

+0

謝謝Graham Dumpleton。 – Jibin