2012-07-24 99 views
0

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

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

>>>进口区域

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

'的en_US.UTF-8'

>>> '{0:N}' 格式(42424242)

'42,424,242'`

但是每当我试图运行Apache服务器和测试代码生活失败,我得到输出,如:

“ 42424242'

我前面有个print语句

locale.setlocale(locale.LC_ALL, '')

调用,在我view.py文件和所有我发现在Apache错误日志中是

[星期二年07月24 15点26分五十六秒2012] [错误]Ç

难道apache进程没有权限访问本地区域设置?

+1

请与您的解决方案更新您的问题不要。发布它作为回答你的问题的答案。 – 2012-07-24 21:20:57

+0

重新编辑来解决这个问题,抱歉的错误。 – blackfedora 2012-07-30 18:29:28

回答

1

我管理通过显式调用

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

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

1

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

https://code.djangoproject.com/ticket/5846