2

我的服务器中安装了 2 个版本。我使用 virtualenv 安装 Python 2.7。

我正在使用 WSGI 来部署我的项目。

WSGIPythonPath /home/ENV/lib/python2.7/site-packages
WSGIScriptAlias / /var/www/html/my_project/wsgi.py

我的 http.conf 就是这样。

python -V 给出

Python 2.7.3

但是在我的项目调试窗口中,它说 Django 使用的是 2.6.8。我哪里错了?

更新:这是我的 wsgi 文件

import os
import sys
sys.path.append('/var/www/html')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Python 版本:2.6.8 Python 路径:
['/home/ENV/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/home/ENV/lib/python2.7/site-packages/pip-1.1-py2 .7.egg', '/home/ENV/lib/python2.7/site-packages/Django-1.4-py2.7.egg', '/home/ENV/lib/python2.7/site-packages', '/usr/lib/python2.6/site-packages/pip-1.1-py2.6.egg', '/usr/lib/python2.6/site-packages/django_transmeta-0.6.7-py2.6.egg ', '/usr/lib/python2.6/site-packages/ipython-0.13-py2.6.egg', '/usr/lib/python2.6/site-packages/virtualenv-1.7.2-py2.6 .egg'、'/usr/lib64/python26.zip'、'/usr/lib64/python2.6'、'/usr/lib64/python2.6/plat-linux2'、'/usr/lib64/python2.6 /lib-tk'、'/usr/lib64/python2.6/lib-old'、'/usr/lib64/python2.6/lib-dynload'、'/usr/lib64/python2.6/site-packages' , '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6 c11-py2.6.egg-info', '/var/www/html']

在我的 httpd 的 error_log 中:

[2012 年 7 月 10 日星期二 20:51:29] [错误] python_init:Python 版本不匹配,预期为“2.6.7”,找到“2.6.8”。[2012 年 7 月 10 日星期二 20:51:29] [错误] python_init:找到 Python 可执行文件'/usr/bin/python'。[2012 年 7 月 10 日星期二 20:51:29] [错误] python_init: Python 路径正在使用 '/usr/lib64/python26.zip:/usr/lib64/python2.6/:/usr/lib64/python2.6/plat -linux2:/usr/lib64/python2.6/lib-tk:/usr/lib64/python2.6/lib-old:/usr/lib64/python2.6/lib-dynload'。

4

3 回答 3

3

如果我正确理解了这个问题,那么您正在尝试将应用程序的 wsgi 脚本配置为使用特定的 virtualenv。

如果是这种情况,请查看 modwsgi 的文档: http ://code.google.com/p/modwsgi/wiki/VirtualEnvironments

我会为你尝试 TLDR,但它在那个链接上写得很好,我无法做到公正。

于 2012-07-10T15:11:50.860 回答
1

mod_wsgi 模块必须针对您要使用的特定 Python 主要/次要版本进行编译。您不能使用 WSGIPythonHome 强制针对 Python 2.6 编译的 mod_wsgi 使用使用 Python 2.7 构建的 Python 虚拟环境。

于 2012-07-11T01:14:31.023 回答
0

如果您使用Buildout,您可以直接在配置文件中控制使用哪个版本的 python。

于 2012-07-10T21:13:18.113 回答