当前位置:  开发笔记 > 编程语言 > 正文

设置Python语言环境不起作用

如何解决《设置Python语言环境不起作用》经验,为你挑选了1个好方法。



1> jfs..:

似乎什么都没有得救.假设你设置一次你的语言环境我错了,然后系统会记住这个

是的,locale.setlocale()用Python 调用不会影响未来的python进程.请改为配置环境变量,请参阅如何在Ubuntu中设置所有语言环境设置.

Bash的"日期"方法似乎以某种方式获取区域设置.

datesetlocale(LC_ALL, "")在开始时 调用,即每个进程至少调用setlocale()一次以启用$LANG语言环境而不是C语言环境.


setlocale(LC_ALL, '')$LANG首先根据变量设置语言环境,而不是$LANGUAGE(它是相关但不同的:"GNU gettext搜索路径按顺序包含'LC_ALL','LC_CTYPE','LANG'和'LANGUAGE'.").

设置LC_TIME类别(在Ubuntu上)就足够了:

>>> import locale
>>> import time
>>> time.strftime('%A')
'Tuesday'
>>> locale.getlocale(locale.LC_TIME)
('en_US', 'UTF-8')
>>> locale.setlocale(locale.LC_TIME, 'ru_RU.UTF-8')
'ru_RU.UTF-8'
>>> time.strftime('%A')
'???????'
>>> locale.getlocale(locale.LC_TIME)
('ru_RU', 'UTF-8')

如果setlocale()尚未引发,locale.Error: unsupported locale setting则成功设置相应的区域设置类别.

您还可以获取工作日名称知道其位置(在更改语言环境的同一个python会话中):

>>> import calendar
>>> calendar.day_name[1]
'???????'
>>> locale.nl_langinfo(locale.DAY_3)
'???????'

在不修改全局状态的情况下,在给定语言环境中打印工作日的可移植方法是使用babel模块:

>>> from datetime import date
>>> from babel.dates import format_date # $ pip install babel
>>> format_date(date.today(), format='EEEE', locale='en')
'Tuesday'
>>> format_date(date.today(), format='EEEE', locale='ru')
'???????'
>>> format_date(date.today(), format='EEEE', locale='nl')
'dinsdag'

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有