Pip + WSGI 导入错误

2 投票
2 回答
830 浏览
提问于 2025-04-15 16:50

当我部署我的应用程序时,这些应用在使用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 文件。

撰写回答