在pygtk中,为什么导入gtk模块会更改我的区域设置?

2024-04-20 05:32:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我惊讶地发现,在Pygtk程序中,仅仅导入gtk模块就会改变当前加载的区域设置。如果我运行以下测试程序,在print语句中会得到两个不同的结果:

import locale
import pygtk

print "Locale before:", locale.setlocale(locale.LC_ALL, None)
import gtk
print "Locale after:", locale.setlocale(locale.LC_ALL, None)

输出:

Locale before: C
Locale after: LC_CTYPE=pt_BR.UTF-8;LC_NUMERIC=en_US.utf8;LC_TIME=en_US.utf8;LC_COLLATE=en_US.utf8;LC_MONETARY=en_US.utf8;LC_MESSAGES=en_US.utf8;LC_PAPER=en_US.utf8;LC_NAME=en_US.utf8;LC_ADDRESS=en_US.utf8;LC_TELEPHONE=en_US.utf8;LC_MEASUREMENT=en_US.utf8;LC_IDENTIFICATION=en_US.utf8

import gtk行之后,根据我的LC_xxx环境变量配置区域设置,就像有人调用了locale.setlocale(locale.LC_ALL, "")。这是pygtk的故意行为还是gtk的故意行为?有文件记载吗?你知道吗

如果我不想使用LC_xxx环境变量族中的区域设置,我应该在哪里调用locale.setlocale?我想确保我在程序中设置的区域设置不会被我正在使用的库之一覆盖。你知道吗


Tags: import程序区域gtkutf8alllocalepygtk