【发布时间】:2020-08-28 20:19:01
【问题描述】:
代码很简单:
import locale
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8') # I tried de_DE and de_DE.utf8 too
locale.currency(0)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python3.7/locale.py", line 267, in currency
raise ValueError("Currency formatting is not possible using "
ValueError: Currency formatting is not possible using the 'C' locale.
当我在 ubuntu 上运行它时它可以工作。但是,在高山上,会弹出此错误。我尝试了this 评论中的解决方法,但没有成功。我还在该脚本之上添加了/usr/glibc-compat/bin 到PATH,但没有帮助。
有什么方法可以让语言环境在 alpine 上工作?
自己试试吧:
docker run --rm alpine sh -c "apk add python3; python3 -c 'import locale; locale.setlocale(locale.LC_ALL, \"de_DE.UTF-8\"); locale.currency(0)'"
更新:this repo 也不起作用。
更新:我也试过this指南,但它似乎与python不兼容?即使确实显示了语言环境,我仍然得到这个:
/app # locale -a
C
C.UTF-8
sv_SE.UTF-8
en_GB.UTF-8
ch_DE.UTF-8
pt_BR.UTF-8
ru_RU.UTF-8
it_IT.UTF-8
de_CH.UTF-8
en_US.UTF-8
fr_FR.UTF-8
nb_NO.UTF-8
de_DE.UTF-8 <--
nl_NL.UTF-8
es_ES.UTF-8
/app # python
Python 3.7.7 (default, Apr 24 2020, 22:09:29)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
'de_DE.UTF-8'
>>> locale.currency(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/locale.py", line 267, in currency
raise ValueError("Currency formatting is not possible using "
ValueError: Currency formatting is not possible using the 'C' locale.
【问题讨论】:
-
据我所知,除非最近发生了一些变化,否则 alpine 没有来自底层操作系统的任何内置语言环境支持:grrr.tech/posts/2020/add-locales-to-alpine-linux-docker-image
-
@MatsLindh 查看更新。
标签: python docker locale python-3.7 alpine