Ubuntu 14.04部署Django2.0.5时Gunicorn启动失败求助
Gunicorn启动失败排查(Ubuntu 14.04 + Django 2.0.5)
嘿,我现在在DigitalOcean上用Ubuntu 14.04部署Django 2.0.5,卡在验证Gunicorn正常工作这一步了——启动Gunicorn直接失败,试了两个命令都不行:
gunicorn --bind 0.0.0.0:8000 manaland.wsgi:applicationgunicorn --bind 0.0.0.0:8000 wsgi:application
终端报错开头是root@django-manalan...,但没显示完整错误信息。我参考的是Debian 8的部署教程,不过看起来Ubuntu 14.04的环境还是有差异。
几个实用的排查步骤,你可以试试:
- 先确认工作目录:一定要cd到包含
manage.py的项目根目录再跑Gunicorn命令,不然它找不到wsgi模块肯定报错。你可以用pwd看看当前路径,再用ls确认manage.py在不在当前目录。 - 核对wsgi模块路径:
- 如果你的项目结构是
manaland/(根目录)下还有一个同名子目录manaland/(里面放着wsgi.py),那第一个命令manaland.wsgi:application是正确的; - 如果
wsgi.py直接和manage.py在同一层级,那第二个命令才对。用find . -name "wsgi.py"就能快速找到它的位置。
- 如果你的项目结构是
- 激活虚拟环境再操作:如果你用了虚拟环境(比如venv),必须先激活它再跑Gunicorn!比如
source venv/bin/activate(路径根据你的虚拟环境调整),不然系统调用的全局Gunicorn可能和你的Django版本不兼容——毕竟Django 2.0.5对Python版本有要求,全局环境的包可能跟不上。 - 获取完整错误日志:只看开头的
root@django-manalan...没用,得看具体错误类型(比如ModuleNotFoundError、ImportError)。可以用这个命令截取完整错误:gunicorn --bind 0.0.0.0:8000 manaland.wsgi:application 2>&1 | head -30,把输出的内容贴出来,就能精准定位问题了。 - 检查Python版本兼容性:Django 2.0.5要求Python 3.4及以上,Ubuntu 14.04默认的Python 3是3.4,理论上没问题,但如果你不小心用了Python 2,肯定会报错。跑
python3 --version确认版本,必要时用gunicorn3代替gunicorn(如果安装了Python3版本的Gunicorn)。
内容的提问来源于stack exchange,提问作者Dominic M.
相关产品推荐
相关产品推荐

