0

我有一个 Django 项目,它部署在 Apache2 和 mod_wsgi 下的临时服务器上,并且运行良好。它使用 django-registration 应用程序。

我试图将我的服务器切换到 nginx 并使用 gunicorn 运行 Django 项目。项目加载正常,除非我尝试访问 /admin 和 /user/logout(默认是 /account 和 django-registration),它会给我一个“没有名为 urls 的模块”错误。我把头发扯了几个小时。我在 urls.py 中注释掉了注册 url 行,然后管理员显示正常,除了它缺少注册模型。所以管理员失败只是因为注册失败。

理想情况下,我想使用 nginx/gunicorn 设置将我的项目投入生产,但注册似乎不想玩得很好。我尝试删除注册,从源代码安装 0.8,删除它,pip 安装 0.7,没有任何效果。有效的是停止 nginx,然后再次运行 apache。因此,从本质上讲,除了所使用的 Web 服务器类型之外,该项目没有受到影响。

由于在 Apache/mod_wsgi 下注册似乎工作正常,我很想用那个设置推动生产......但我仍然很想知道为什么在我尝试时注册不会与 gunicorn 一起工作。任何帮助,将不胜感激。

4

1 回答 1

1

听起来您sys.path在使用 mod_wsgi 时的设置不同。在部署时遇到一个很常见的错误,所以一个好的第一步是sys.path在运行 gunicorn 时检查你的。你在使用virtualenv吗?确保将 gunicorn 安装到您的 virtualenv 以及 django-registration 和您可能拥有的任何其他依赖项中。如果您在 virtualenv 的 bin 目录中运行 gunicorn 脚本,那么一切都应该正常工作。

于 2011-05-25T08:20:43.103 回答