2009-12-09 76 views
2

當我部署可以使用django測試服務器正常工作的應用時,我通常會爲使用pip install -e安裝的每個軟件包獲取錯誤。#egg = foo。我通常使用virtualenv來執行此操作,將文件放入env/src/foo中,並將另一個文件放入python/site-packages(這是django-css的一個示例):Pip + WSGI導入錯誤

django-css.egg-link,其中包含以下行:

/home/pinax-0.7.1/src/django-css 
. 

我如何告訴WSGI,它應該遵循這些鏈接,或者我乾脆做錯了什麼。

感謝, 菲利普Wassibauer

回答

4

這是在virtualenv中Django的WSGI我的劇本是這樣的:

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' 

import site 
site.addsitedir('/path/to/virtualenv/lib/python2.6/site-packages') 

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

關鍵位是site.addsitedir(...),增加的指定目錄下的所有文件*.pth的內容sys.path。在這種情況下,Python需要幫助查找easy-install.pth文件。

+0

謝謝...工作。我知道這只是一個小而簡單的事情,我錯過了。 – 2009-12-10 11:59:53

+0

+1。 .egg-link文件與導入無關,它們只是setuptools記住代碼所在位置的元數據。導入相關的魔法發生在easy-install.pth中。 – 2009-12-10 18:55:40

0

的modwsgi文檔對how to use virtualenv筆記。它通常和修改django.wsgi(或其他任何你所說的)文件一樣簡單,以便它將virtualenv環境添加到modwsgi的路徑中。

This link在使用pip/virtualenv/modwsgi時有一些附加的蒸餾註釋。