Django国际化应用部署Gunicorn报错:KeyError: 'translate'
Django + Gunicorn 下 {% translate %} 标签 KeyError 排查建议
核心排查步骤
检查模板i18n配置是否生效
- 打开
settings.py,确认TEMPLATES的OPTIONS里配置了'builtins': ['django.templatetags.i18n'],或者所有用到{% translate %}的模板顶部都写了{% load i18n %} - 确认
USE_I18N = True,且Gunicorn启动时未被环境变量或自定义配置覆盖该设置
- 打开
核对Gunicorn与开发服务器的运行环境
- 执行
which gunicorn和which python,确认两者属于同一个虚拟环境,避免Gunicorn使用系统默认Python导致依赖缺失 - 启动Gunicorn时显式指定配置模块:
gunicorn --env DJANGO_SETTINGS_MODULE=Main_Project.settings Main_Project.wsgi,规避路径错配问题
- 执行
验证翻译文件状态
- 确认
LOCALE_PATHS指向的目录中存在编译后的.mo文件,若未编译,执行django-admin compilemessages生成 - 启动前运行
python manage.py check --deploy,让Django自动排查配置或翻译文件的潜在问题
- 确认
检查WSGI应用初始化逻辑
- 确保
wsgi.py为默认写法,不要修改Django的i18n初始化流程,正常代码应为:
- 确保
import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Main_Project.settings') application = get_wsgi_application()
尝试单worker启动:
gunicorn --workers 1 Main_Project.wsgi,排除多进程加载异常的可能抓取完整错误日志
- 启动Gunicorn时添加日志参数:
gunicorn --access-logfile - --error-logfile - Main_Project.wsgi,查看完整错误栈,确认是否因模板标签未加载导致报错
- 启动Gunicorn时添加日志参数:
内容的提问来源于stack exchange,提问作者Crandy9
相关产品推荐
相关产品推荐

