我正在尝试使用virtualenv部署django应用程序,但我不是Linux专家用户。
它位于共享主机上。如果我键入python我得到了python 2.4控制台。如果是python2.7类型,我得到了2.7控制台。
我想使用2.7。
我已经在第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。但是此文件夹不存在。显然它是由第22行的activate_this.py添加的:
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
任何人都可以帮助我?
由于
答案 0 :(得分:1)
如果您的mod_wsgi是为Python 2.4编译的,则不能使用Python 2.7。你甚至无法将mod_wsgi指向使用Python 2.7构建的虚拟环境。你唯一的选择就是安装一个针对mod_wsgi编译的mod_wsgi,或者从二进制发行版软件包(如果可用)安装,或者通过从源代码编译mod_wsgi来获得正确的Python版本。
现在看起来你可能正在混合Python版本,你不能做,并会导致错误,包括崩溃。您需要找出为其编译的Python mod_wsgi的版本。
请参阅:
http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Shared_Library
找到这个的一种方法。