Django服务:wsgi.py无法作为Python模块加载

5 投票
2 回答
8167 浏览
提问于 2025-04-17 13:40

我在尝试搭建一个Django的管理网站,但一直没有成功。每次请求这个网站时,都会出现500内部服务器错误。错误信息显示wsgi.py这个文件无法作为Python模块加载。下面是内部服务器错误的详细信息和相关文件。

可能有关系的是:最开始我是在用本地的Python版本进行尝试。另一位系统管理员也试过这个本地的Python版本,但它无法正常运行。这个本地版本只对我这个用户有效。我觉得这可能有关系,但我也尝试过使用系统自带的Python。

每当请求这个网站时,都会出现500内部服务器错误。以下是服务器的错误日志:

[error] [client 208.120.168.168] mod_wsgi (pid=20239): Target WSGI script '/home/andrew/public_html/7DigAdmin/wsgi.py' cannot be loaded as Python module.
[error] [client 208.120.168.168] mod_wsgi (pid=20239): Exception occurred processing WSGI script '/home/andrew/public_html/7DigAdmin/wsgi.py'.
[error] Traceback (most recent call last):
[error] File "/home/andrew/public_html/7DigAdmin/wsgi.py", line 5, in ?
[error] import os
[error] ImportError: No module named os

wsgi.py文件内容:

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "/home/andrew/SCTN_7DigAdmin/SCTN_7DigAdmin/SCTN_7DigAdmin.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

wsgi.conf文件内容:

LoadModule wsgi_module modules/mod_wsgi.so

WSGIPythonHome /usr/local/bin/python2.7

httpd.conf文件内容:

WSGIScriptAlias /7dadmin /home/andrew/public_html/7DigAdmin/wsgi.py
  <Directory /home/andrew/public_html/7DigAdmin>
     Order allow,deny
     Allow from all
  </Directory>

2 个回答

0

我之前也遇到过类似的问题,对我来说,这个方法解决了我的困扰:

chmod a+x wsgi.py
1

我想你遇到的错误是因为你把 WSGIPythonHome 设置成了 Python 的 bin 目录。正如mod_wsgi 的文档所说,这个设置应该指向库文件的目录。你出现错误的原因是,像 os 这样的常用库文件并不在那个 bin 目录里。

不过,这个设置通常只在库文件放在意想不到的位置时才需要用,而看起来你的情况并不是这样。你应该把这个设置完全去掉。

撰写回答