无法从docker-compose生成django.po文件

oaxa6hgo  于 2023-06-25  发布在  Go
关注(0)|答案(2)|浏览(81)

我在一个docker-container中使用Django 3.0.5,连接到一个Postgres-container。
我想生成django.po文件,但当我尝试使用这个命令时:

docker-compose run web python3 manage.py makemessages -l en

我得到了这个错误:
CommandError:找不到msguniq。确保您安装了GNU gettext tools 0.15或更新版本。
同时,当我直接访问我的容器时,它工作:(这里,ad2b13f2fe87是我的django-container的ID)

docker exec -it ad2b13f2fe87 bash

root@ad2b13f2fe87:/code# gettext --version
gettext (GNU gettext-runtime) 0.19.8.1
...

root@ad2b13f2fe87:/src# python3 manage.py makemessages -l en
processing locale en

有人能给我解释一下这是什么问题吗?谢谢你。

qco9c6ql

qco9c6ql1#

没关系,我找到问题了。
默认情况下,我作为Django使用的Python镜像不会更新。
在我的Python(Django)Dockerfile中,我刚刚添加了:

RUN apt update
RUN apt install gettext -y

在我的requirements.txt中,我还添加了以下内容:

# i18n
python-gettext==4.0

现在,命令docker-compose run <python-django-service> python3 manage.py makemessages -l en起作用了,我的django.po文件正确生成了。

lvjbypge

lvjbypge2#

当我试图在我的容器enter image description here中安装gettext包时,我也遇到了同样的问题
为了解决这个问题,我在我的DockerFile中添加了这两行:

RUN apk update
RUN apk add gettext

而且效果很好

相关问题