Pip + WSGI 导入错误
当我部署我的应用程序时,这些应用在使用Django测试服务器时运行得很好,但我通常会遇到我通过pip install -e ....#egg=foo安装的每个包的错误。我通常是使用virtualenv来做这个,它会把文件放到env/src/foo,并在python/site-packages中放置另一个文件(这是django-css的一个例子):
django-css.egg-link,这个文件里包含以下内容:
/home/pinax-0.7.1/src/django-css
.
我该如何告诉wsgi它应该跟随这些链接,或者我是不是完全做错了什么。
谢谢,
Philipp Wassibauer
2 个回答
0
modwsgi的文档里有关于如何使用virtualenv的说明。通常,只需要简单地修改你的django.wsgi
(或者你自己命名的文件)来把virtualenv环境添加到modwsgi的路径中。
这个链接提供了一些关于使用pip/virtualenv/modwsgi的额外简明笔记。
4
这是我在虚拟环境中为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
文件。