【问题标题】:gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>gunicorn.errors.HaltServer: <HaltServer 'Worker 无法启动。' 3>
【发布时间】:2014-08-29 15:58:54
【问题描述】:

我已经在我的 virtualenv 中安装了 gunicorn。

从此目录:

manage.py
/onbytes/wsgi.py

我运行以下命令:

gunicorn onbytes.wsgi:application

我收到以下错误:

Traceback (most recent call last):
  File "/home/ymorin007/.virtualenvs/onbytes.com/bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==19.0.0', 'console_scripts', 'gunicorn')()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 166, in run
    super(Application, self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 71, in run
    Arbiter(self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 169, in run
    self.manage_workers()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 477, in manage_workers
    self.spawn_workers()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 537, in spawn_workers
    time.sleep(0.1 * random.random())
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 209, in handle_chld
    self.reap_workers()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 459, in reap_workers
    raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

运行 gunicorn onbytes.wsgi:application --preload 会给我这个错误:

Traceback (most recent call last):
  File "/home/ymorin007/.virtualenvs/onbytes.com/bin/gunicorn", line 9, in <module>
    load_entry_point('gunicorn==19.0.0', 'console_scripts', 'gunicorn')()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 166, in run
    super(Application, self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 71, in run
    Arbiter(self).run()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 57, in __init__
    self.setup(app)
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 113, in setup
    self.app.wsgi()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 66, in wsgi
    self.callable = self.load()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
    return self.load_wsgiapp()
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/home/ymorin007/.virtualenvs/onbytes.com/local/lib/python2.7/site-packages/gunicorn/util.py", line 356, in import_app
    __import__(module)
  File "/home/ymorin007/sites/onbytes.com/src/onbytes/wsgi.py", line 8, in <module>
    from django.core.wsgi import get_wsgi_application
ImportError: No module named django.core.wsgi

【问题讨论】:

  • 在调试模式下运行可以提供一些更有用的信息gunicorn onbytes.wsgi:application --debug --log-level debug。

标签: python gunicorn


【解决方案1】:

在将--preload 添加到Procfile 之后,我知道我应该使用pip 安装psycopg2-binary:

pip install psycopg2-binary

【讨论】:

    【解决方案2】:

    添加--preload gunincorn 命令告诉我我必须这样做:

    pip install ordereddict
    

    那个包裹不见了。

    【讨论】:

    • 谢谢。就我而言,添加--preload 是获得有用的调试输出的秘诀,它指出了我的应用程序中的潜在错误。 --log-file 和 --log-level debug 没有多大帮助。
    • 这个。这。这。所有其他“显示更好的日志”选项仅在不同的地方显示相同的错误。这个也向我展示了实际问题 - 在我的情况下,它缺少一个 init.py
    • 如果可以的话,我会把这个版本作为正确答案——gunicorn --preload 实际上给了我一个回溯,以找出失败的原因
    【解决方案3】:

    可能是您的应用程序存在问题,而不是 gunicorn。

    试试:

    gunicorn --log-file=- onbytes.wsgi:application
    

    从 R19 版本开始,Gunicorn 默认不会在控制台中登录,并且不推荐使用 --debug 选项。

    【讨论】:

    • 这是每个 gunicorn 启动错误的第一个解决方案。
    【解决方案4】:

    我遇到了类似的问题,这是因为我在错误的目录中运行了命令。在标准的 django 安装中,尝试在 'manage.py' 的同一目录中运行 gunicorn

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2014-08-05
      • 1970-01-01
      相关资源
      最近更新 更多