【问题标题】:Gunicorn doesn't recognise Wagtail CMSGunicorn 无法识别 Wagtail CMS
【发布时间】:2014-06-09 10:46:11
【问题描述】:

我正在将我的网站从 Mezzanine 迁移到在使用 virtualenv 的 Debian 机器上运行的 Wagtail,但是在设置 Wagtail、用户权限和源之后,当我在 wagtail 文件夹中运行 # gunicorn_django 时,我收到以下错误消息:

Traceback (most recent call last):
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 495, in spawn_worker
    worker.init_process()
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 106, in init_process
    self.wsgi = self.app.wsgi()
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 114, in wsgi
    self.callable = self.load()
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py", line 102, in load
    make_default_env(self.cfg)
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py", line 62, in make_default_env
    raise RuntimeError("django project not found")
RuntimeError: django project not found
Traceback (most recent call last):
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 495, in spawn_worker
    worker.init_process()
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 106, in init_process
    self.wsgi = self.app.wsgi()
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 114, in wsgi
    self.callable = self.load()
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py", line 102, in load
    make_default_env(self.cfg)
  File "/home/user/userblog/local/lib/python2.7/site-packages/gunicorn/app/djangoapp.py", line 62, in make_default_env
    raise RuntimeError("django project not found")
RuntimeError: django project not found
2014-06-09 10:41:27 [2774] [INFO] Worker exiting (pid: 2774)
2014-06-09 10:41:28 [2769] [INFO] Shutting down: Master
2014-06-09 10:41:28 [2769] [INFO] Reason: Worker failed to boot.

据我所知,我所做的与夹层设置没有什么不同,而且我知道 Wagtail 也是基于 Django 的。有谁知道问题出在哪里?

【问题讨论】:

    标签: python django debian gunicorn wagtail


    【解决方案1】:

    gunicorn_django 是deprecated since Gunicorn 18。如果可能的话,你应该在 Django 中使用 WSGI 接口。见Django with Gunicorn docs

    但是,也就是说,当使用 gunicorn_django 时,设置不在 settings.py 中,而是在模块中,您应该能够通过指定相关设置文件的虚线路径来使其工作 - 例如在您的mywagtailproject 文件夹中,mywagtailproject/settings/production.py 文件(请注意,您的 mywagtailproject 文件夹将有一个同名的 mywagtailproject 子文件夹):

    gunicorn_django --settings=mywagtailproject.settings.production --pythonpath=/pathto/mywagtailproject
    

    您可能需要也可能不需要设置 --pythonpath 参数。

    【讨论】:

    • 感谢您的回答,我开始理解这个问题,但是我如何在我的 pythonpath 上获得这个项目?我现在收到错误No module named wagtaildemo.settings.production ,我不知道如何让它知道在哪里寻找这些数据。 production.py 文件确实存在于pathto/wagtail/wagtail/settings/ 文件夹中。
    • 如果您将项目命名为“wagtail”,则会遇到问题,因为这会混淆 python 的路径搜索,因为 Wagtail 应用程序(安装在带有 pip 的站点包中)称为 wagtail。您希望您的项目被称为其他名称 - 例如 wagtaildemo。在这种情况下,需要一个包含设置目录的同名子目录。 IE。如果 production.py 的路径是 pathto/wagtaildemo/wagtaildemo/settings,那么 python 会找到模块 wagtaildemo.setting.production
    • 它没有被命名为 wagtail,也许是一个不好的例子,它确实被命名为 wagtaildemo(文件夹)但是文件夹是否暗示项目的名称?或者是否有一些变量可以设置项目名称?谢谢!
    • 文件夹的名字就是工程的名字。当项目启动时,会为设置、urls 和 wsgi 文件创建一个同名的子目录。如果你的项目在/pathto/wagtaildemo,你应该有/pathto/wagtaildemo/wagtaildemo/settings/production.py。如果是这样,从/pathto/wagtaildemo 运行时这应该可以工作:gunicorn_django --settings=wagtaildemo.settings.production --pythonpath=/pathto/wagtaildemo 如果不是很难说您的特定设置可能有什么问题 - 没有任何关于 Gunicorn 设置的 Wagtail 特定内容。
    • 尝试在 Gunicorn 下将其作为 WSGI 应用程序运行。如果/当您升级到 Gunicorn >=18 时,您会发现无论如何您都可以使用gunicorn_django。这相当于运行 dev.py 设置:gunicorn wagtaildemo.wsgi:application 要使用生产设置运行 Wagtail,您可以创建另一个使用 production.py 的 wsgi 文件:cp wagtaildemo/wsgi.py wagtaildemo/wsgi_production.py ; perl -pi -e"s/(wagtaildemo.settings)/\1.production/" wagtaildemo/wsgi_production.py 然后运行 ​​gunicorn:gunicorn wagtaildemo.wsgi_production:application
    猜你喜欢
    • 2020-09-04
    • 1970-01-01
    • 2015-12-24
    • 2021-01-14
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多