【发布时间】:2012-05-15 19:31:57
【问题描述】:
我正在尝试使用 virtualenv 部署 django 应用,但我不是 linux 专家用户。
它位于共享主机上。如果我输入 python 我得到了 python 2.4 控制台。如果是 python2.7 类型我得到了 2.7 控制台。
我想用2.7。
- 我在我的私有 .site-packages 中安装了带有 setuptools 的 virtualenv。
- 我使用 python 2.7 创建了我的环境:.site-packages/virtualenv --no-site-packages -p python2.7 env
- 我激活了我的环境并安装了我需要的包。
- 我配置(尝试)我的 .wsgi 以使用 env
第 4 步我已经 2 天了。服务器有一些预安装的模块,它们位于 sys.path 上。例如,它安装了 django,但我想使用安装在我的 virtualenv 中的模块。
我阅读了几个 wsgi 文档,然后得出结论:
import sys, os, site
sys.stdout = sys.stderr
os.environ['PYTHON_EGG_CACHE'] = '/home/bruddennautica/apps_wsgi/.python-eggs'
os.environ['DJANGO_SETTINGS_MODULE'] = "brudden.settings"
sys.path.append('/home/bruddennautica/apps_wsgi')
sys.path.append('/home/bruddennautica/apps_wsgi/env/lib/python2.7/site-packages')
activate_this = '/home/bruddennautica/apps_wsgi/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
有了这个配置,我得到了一个 django 错误,它向我展示了一些东西。 django错误不重要,是django版本不等于我安装在我的virtualenv中的python版本造成的。
打印:http://dl.dropbox.com/u/9290581/error.png
可以看到 python 路径条目,其中大部分不是来自 virtualenv。第一个是:/home/bruddennautica/apps_wsgi/env/lib/python2.4/site-packages。但是这个文件夹不存在。显然它是由 activate_this.py 在第 22 行添加的:
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
谁能帮帮我?
谢谢
【问题讨论】:
-
您的屏幕截图忽略了错误消息中最重要的部分。请显示错误消息的顶部。
-
如我所说。错误并不重要。这是因为它运行的是主机安装的 django 1.3,而不是我的环境中安装的 1.4。
-
您的 virtualenv 似乎没有被激活 - 您的错误消息始终指向
/usr/bin/python(请参阅顶部的 Python 可执行文件)。另外,请将您的错误消息发布在此处,或作为文本文档发布在某处,以便复制/粘贴。
标签: python django virtualenv wsgi