我正在尝试使用 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()
有了这个 conf,我得到了一个 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')
任何人都可以帮助我吗?
谢谢