我已经创建了Django应用程序,但是现在计划在站点的某些区域中使用一些异步(实时)功能。经过研究后,我认为我应该使用gevent-socketio
,因此需要将应用程序服务器切换为Gunicorn
。
我已经不愿部署Gunicorn
了,我已经安装了命令sudo apt-get install gunicorn
,并尝试使用gunicorn project.wsgi:application
运行我的应用程序,但是它失败并产生以下错误:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 473, in spawn_worker
worker.init_process()
File "/usr/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 100, in init_process
self.wsgi = self.app.wsgi()
File "/usr/lib/python2.7/dist-packages/gunicorn/app/base.py", line 115, in wsgi
self.callable = self.load()
File "/usr/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 33, in load
return util.import_app(self.app_uri)
File "/usr/lib/python2.7/dist-packages/gunicorn/util.py", line 362, in import_app
__import__(module)
File "/home/alex/django_projects/fantasymatchday_1/fantasymatchday_1/wsgi.py", line 13, in <module>
from django.core.wsgi import get_wsgi_application
ImportError: No module named django.core.wsgi
2014-11-20 17:31:45 [6605] [INFO] Worker exiting (pid: 6605)
2014-11-20 17:31:45 [6600] [INFO] Shutting down: Master
2014-11-20 17:31:45 [6600] [INFO] Reason: Worker failed to boot.
任何人都可以提供我从这里开始需要做什么的线索吗?
我正在使用python 3.4.0和Django 1.6
您必须在相同的环境中安装django
和gunicorn
。如果使用virtualenv
,请确保两者都在同一个虚拟环境中。
如此处和其他地方所指出,错误消息所指出的问题的根源是gunicorn
无法找到django模块。问题就变成了为什么会这样,并且可能有很多不同的原因。就我而言,在没有virtualenv的Ubuntu仿生主机上,原因是我安装了python3-django和gunicorn(后者是python2软件包)。
解决方案是安装python3-gunicorn,删除gunicorn并以gunicorn3
身份运行gunicorn。