为什么两台机器上的ICU输出会不同?

2024-05-20 11:00:16 发布

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

我正在为Flask开发i18n库ICU(和PyICU)的接口。在我的测试套件中,我有一个测试,它检查不同语言环境设置的输出。我遇到的问题是,在本地,我的测试通过了,而在TravisCI实例上,它们也运行了,但是失败了。你知道吗

原因是什么?两台机器上的ICU输出明显不同。在一个测试中,我检查在Python dateformat上使用意大利语言环境执行dateformat的结果:it_IT。结果是“2010年4月12日15:46:00”。但在特拉维西的例子中,它的改变方式对我来说毫无意义。请看这里:

如您所见,生成的字符串是类似的,但是添加了这些/s。我不确定为什么会发生这种情况。有人吗?你知道吗

更新日期:2016年10月28日

经过一系列测试,试图重现travis实例上发生的不同日期格式的输出,我无法重现这个问题。我尝试了以下方法:

  1. 通过将以下内容添加到before_install脚本,显式设置travis实例上的区域设置:

    sudo locale gen“恩_美国.UTF-8英寸
    sudo更新区域设置
    sudo dpkg重新配置区域设置

  2. 我创建了travistrusty Tahr机器应该基于的ec2实例(see here),并尝试安装所有需要的东西并运行测试。没有错误!

  3. 我尝试将我的dev machines区域设置设置为travis实例上设置的区域设置。再次强调,没有错误!

  4. 我尝试了一个不同的区域设置,只是想看看它是否与特定的区域设置有关,但得到了另一个异常:

因此,在这一点上,似乎有可能是语言环境设置以外的内容导致了不正确的输出。你知道吗


Tags: 实例travis机器语言区域flask环境套件