在服务器上导入 passenger_wsgi.py 时发生错误

3 投票
1 回答
741 浏览
提问于 2025-04-18 03:41

我在dreamhost服务器上遇到了一个错误,提示“导入你的passenger_wsgi.py时发生错误”。

这是我的passenger_wsgi.py文件:

import sys, os
INTERP  = '/home/dramira/books.everycrave.me/intra/bin/python'
sys.path.append('/home/dramira/books.everycrave.me/flipbook/')
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = "settings"
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

我在编译passenger_wsgi.py时遇到的具体错误是:

Traceback (most recent call last):
  File "passenger_wsgi.py", line 7, in <module>
    import django.core.handlers.wsgi
ImportError: No module named django.core.handlers.wsgi

我检查过在同一台服务器上为其他网站编译passenger_wsgi.py文件,结果都很好。我不知道我在这里遇到了什么问题。请帮帮我。

1 个回答

0

你的 passenger_wsgi.py 文件看起来和我的差不多,我的也是在 Dreamhost 上托管的。有三个明显的不同之处:

  1. 你只把当前目录 os.getcwd() 加入了 sys.path。而我则同时加入了当前目录和项目目录:os.path.join(os.getcwd(), 'projectname'))
  2. 你的 DJANGO_SETTINGS_MODULE 只叫 'settings'。而我使用的是带有项目名的模块:'projectname.settings'
  3. 这可能是 Django 版本的差异——我用的是 1.7——但在某个时候,我不得不放弃 application = WSGIHandler()

我现在实际的 WSGI 调用是:

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

撰写回答