好的,我正在尝试使用 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。
[顺便说一句,运行 python manage.py runserver 工作正常]