python - 无法从 docker-compose 生成 django.po 文件
问题描述
我在 docker-container 中使用 Django 3.0.5,链接到 Postgres-container。
我想生成 django.po 文件,但是当我尝试使用此命令时:
docker-compose run web python3 manage.py makemessages -l en
我收到了这个错误:
命令错误:找不到 msguniq。确保您安装了 GNU gettext 工具 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
有人可以解释一下问题是什么吗?谢谢你。
解决方案
没关系,我发现了问题。
默认情况下,我用作 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
文件已正确生成。
推荐阅读
- c - sem_open 是否分配内存?
- python - GCP 云函数 - 有状态保存
- multithreading - 如果在 openssl 中未设置锁定功能,多线程应用程序将随机崩溃
- maven - 嗨,我希望 mvn 从特定的 URl 下载一个依赖项。我怎样才能做到这一点?
- docker - 如何修复 GitHub Actions 中的 golangci-lint 错误?
- reactjs - useEffect 依赖异常
- waf - 带有集成区域的 waf 多项目设置
- reactjs - React JS 在 IE 11 中但在 chrome 中不起作用,给出语法错误
- spring-boot - SpringBoot JDBC derby inmemory 的配置问题
- javascript - 输入字符后测试字段失去焦点