独角兽无法启动

Gunicorn can't start

好的,我正在尝试 运行 一个带有 gunicorn 的 django 应用程序,但似乎没有任何效果,我的应用程序文件夹结构如下所示:

/home/web/app/
    appenv/
    dtest/
    static/
    db.sqlite3
    manage.py

appenv 包含我的虚拟环境和 在 dtest 我有文件 wsgi.py 其中包含:

import os
import sys

sys.path.append('/home/web/app/dtest')
sys.path.append('/home/web/app')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dtest.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

然后我尝试 运行 gunicorn 像这样:

gunicorn wsgi.py -b 0.0.0.0:9999

但我收到错误消息:

[2018-10-09 17:37:46 -0500] [15177] [INFO] Starting gunicorn 19.9.0
[2018-10-09 17:37:46 -0500] [15177] [INFO] Listening at: http://0.0.0.0:9999 (15177)
[2018-10-09 17:37:46 -0500] [15177] [INFO] Using worker: sync
[2018-10-09 17:37:46 -0500] [15180] [INFO] Booting worker with pid: 15180
[2018-10-09 22:37:49 +0000] [15180] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked
AttributeError: 'module' object has no attribute '__path__'

然后 gunicorn 死了...它一定是我的模块导入的方式,但我不确定它到底是什么(也许修改 sys.modules?)

我在 dietpi (debian 8 Jessie) 上使用 Django 版本 2.0.9、gunicorn(版本 19.9.0)、Python 3.4.2。

[顺便说一下,运行ning python manage.py 运行服务器工作正常]

好吧,这是一个愚蠢的错误,这是我启动 gunicorn 的方式,这个可以解决问题:

gunicorn wsgi:application -b 127.0.0.1:9999

(我漏掉了 :application 部分)

我最近遇到了 gunicorn cannot start 问题。

找了半天发现是运行用户对日志文件和pid文件没有写权限造成的。

希望对犯过类似错误的人有所帮助。