【发布时间】:2011-01-21 03:08:18
【问题描述】:
我正在运行 apache / os x 并提供 localhost 页面以在我的笔记本电脑上测试 django。我已经验证了以下所有内容
• python 工作正常并且是最新的 (2.5.1)
• django 可用于 python 并且是最新的 (1,1,0, 'final', 0)
• 在我的 apache 配置中的 apache 模块中加载了 mod_wsgi 模块 - 检查!
• django 应用程序的路径在具有适当权限的 vhost.conf 中 - 好的!
• mod_wsgi vhost.conf 在预期的 django 应用程序目录中经过测试并且工作正常 - 通过 localhost 测试应用程序拉起 200 OK, 'hello world!'
• django 默认应用程序已使用“django-admin.py startproject mysite”创建
• django 应用程序使用开发服务器在端口 8000 上运行良好 - 好的!
• 新 django 应用程序(称为 mysite)的路径位于 python 路径上 - 已验证!
所有这些都经过验证,当我使用 DJANGO_SETTINGS_MODULE settings.py 运行 wsgi 脚本并加载 django 应用程序时,我仍然得到“无法导入设置 'mysite.settings' 等”。
由于这似乎涵盖了基本的故障排除,我是否可以采取任何进一步的步骤来找出问题?
=================
Python 路径有效,已验证。 django 开发服务器在 8000 端口使用命令行运行良好。
apache 配置加载了典型的模块: LoadModule wsgi_module libexec/apache2/mod_wsgi.so
vhost.conf 包含在 apache 配置中,如下所示
名称虚拟主机:*.80
<Directory /users/useracct/scripts/python>
Order allow,deny
Allow from all
</Directory>
<Directory /Library/WebServer/Documents>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess localhost user=username group=staff threads=25
WSGIProcessGroup localhost
WSGIScriptAlias /mysite /users/useracct/Sites/mysite/mysite.wsgi
<Directory /users/useracct/Sites/mysite/>
Allow from all
</Directory>
DocumentRoot /Users/useracct/Sites/
Virtualenv 没有设置这个帐户,所以这是一个不太可能的原因。
========================
和 wsgi 脚本文件(尽量保持最小):
import os, sys
path = '/users/usracct/sites/mysite'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
【问题讨论】:
-
特别关注
sys.path设置并为您的Django 应用程序提供工作目录(包括settings.py文件)。 -
另外,检查应用程序是否通过
./manage.py runserver正确启动 - 如果没有,请发布任何错误消息。 -
发布 Apache 配置 sn-p 显示您如何将应用程序映射到 mod_wsgi。特别是,展示如何在 Apache 配置中设置 Django 应用程序的路径,以及您是在嵌入式模式还是守护模式下使用 mod_wsgi。
-
你的 WSGI 脚本文件里有什么?也发布有问题的内容。
-
@Graham 正如你在博客上所说的那样,“没有人应该责备自己”,因为配置错误。在这方面,在开发人员社区中仍然存在一个特定的绊脚石(包括当前案例),涉及建立具有有意义反馈的开发环境的必要曲线。人们不得不想知道为什么配置过程在没有反馈的情况下发展,以使新项目的基本指标到位。 (因此这篇文章中的“婴儿步骤”的标题)。我想在通常不被注意的地方有一个日志。
标签: python django apache macos mod-wsgi