Windows环境下Django执行makemessages失败提示msgmerge不识别--previous如何解决
报错原因
Django 3.2及以上版本执行makemessages命令时,默认会给依赖的msgmerge工具传递--previous参数,该参数仅支持gettext 0.19及以上版本。你当前Windows系统中安装的gettext工具版本低于0.19,无法识别该参数,因此触发报错。
解决方案
有两种可行解决方式,按需选择即可:
- 方案1:升级系统gettext版本
下载安装0.19版本以上的Windows版gettext二进制包,将其安装路径下的bin目录添加到系统环境变量PATH的最顶部,重启命令行后执行msgmerge --version确认版本符合要求,再重新执行makemessages命令即可。
注意:要排查PATH中是否有其他软件自带的旧版本gettext(比如部分Git安装包内置的gettext版本较低),避免旧版本优先级更高导致问题重复出现 - 方案2:追加参数跳过
--previous配置
不需要升级gettext,直接在原命令后追加--no-previous参数即可兼容旧版本工具,命令如下:py manage.py makemessages -l es --no-previous
内容的提问来源于stack exchange,提问作者Danijela Popović
相关产品推荐
相关产品推荐

