在服务器上导入 passenger_wsgi.py 时发生错误
我在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 上托管的。有三个明显的不同之处:
- 你只把当前目录
os.getcwd()
加入了sys.path
。而我则同时加入了当前目录和项目目录:os.path.join(os.getcwd(), 'projectname'))
。 - 你的
DJANGO_SETTINGS_MODULE
只叫'settings'
。而我使用的是带有项目名的模块:'projectname.settings'
。 - 这可能是 Django 版本的差异——我用的是 1.7——但在某个时候,我不得不放弃
application = WSGIHandler()
。
我现在实际的 WSGI 调用是:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()