0

我设置了一个简单的 Ubuntu/django/apache 服务器,但在格式化一些我想在 Django 模板中显示的数字时遇到了问题。当我使用 Django 测试服务器在本地(即在我的工作机器上)运行代码时,所有格式都没有问题。

同样,当我在服务器上打开 IDLE 时,我可以这样做:`

>>> 导入语言环境

>>> locale.setlocale(locale.LC_ALL,'')

'en_US.UTF-8'

>>> '{0:n}'.format(42424242)

'42,424,242'`

但是,每当我尝试运行 apache 服务器并实时测试代码时,它都会失败,我会得到如下输出:

'42424242'

我在

locale.setlocale(locale.LC_ALL,'')

调用在我的 view.py 文件中,我在 apache 错误日志中找到的所有内容是

[2012 年 7 月 24 日星期二 15:26:56] [错误] C

可能是 apache 进程没有访问本机语言环境设置的权限吗?

4

2 回答 2

1

我设法通过显式调用来解决问题

locale.setlocale(locale.LC_ALL,'en_US.UTF-8')

我不确定为什么没有 en_US.UTF-8 参数就无法工作,因为本地设置是“en_US.UTF-8”。如果有人知道为什么我需要在 apache 进程运行代码时使用显式调用,而不是在我在其他任何地方测试它时,我仍然会对答案感兴趣,但我会将其标记为已解决。

于 2012-07-30T18:28:56.020 回答
1

这是错误,因为默认语言环境不提供位置信息。你可以在这里阅读更多:

https://code.djangoproject.com/ticket/5846
于 2014-06-22T09:16:34.840 回答