使用apj使用django和https

时间:2011-11-17 09:43:01

标签: python django apache mod-wsgi

我在运行arch linux的机器上使用带有mod_wsgi的Apache 2.2.21。我想使用具有https功能的django。我还安装了python2.7和python 3.2。该项目的django.wsdi文件如下。当我尝试使用https但不使用django访问示例文件时,它可以正常工作。当我尝试使用https从django项目获取文件时,我收到以下错误 - ImportError: No module named django.core.handlers.wsgi

当我cd到/ usr / lib / httpd / modules并执行ldd mod_wsgi.so时,我得到以下内容,表明它是针对python 3.2编译的。但是django不支持python 3.2只有2.7。

我该如何解决这个问题?

感谢任何帮助/指针。

$ldd mod_wsg.so
    linux-vdso.so.1 =>  (0x00007fff769e1000)
    libpython3.2mu.so.1.0 => /usr/lib/libpython3.2mu.so.1.0 (0x00007f82a3188000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007f82a2f6b000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007f82a2d66000)
    libutil.so.1 => /lib/libutil.so.1 (0x00007f82a2b63000)
    libm.so.6 => /lib/libm.so.6 (0x00007f82a28e1000)
    libc.so.6 => /lib/libc.so.6 (0x00007f82a2559000)
    /lib/ld-linux-x86-64.so.2 (0x00007f82a37e5000)

django.wsdi文件:     进口口     import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

path = '/to/mysite'
if path not in sys.path:
    sys.path.append(path)

1 个答案:

答案 0 :(得分:0)

安装针对Python 2.7编译的mod_wsgi版本。 mod_wsgi模块一次只能绑定到一个Python版本,并且不能动态更改使用的内容,而只能在编译时设置。

如果您确实想在不同时间使用不同的Python版本,则无法使用单个Apache / mod_wsgi实例。