为什么在某些情况下需要为 Python 手动设置 LC_CTYPE

Kan*_*mov 5 python unix django utf-8

我正在尝试使用 Django 的管理文档。我按照教程安装了docutils。安装后,我通过python manage.py runserver运行 Django 开发服务器并得到错误unknown locale: UTF-8

我解决了这个问题中解释的问题:

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

但我的问题是:这个问题的根源什么?似乎docutilsPython或其他东西有一些兼容性问题?

小智 2

这是老问题了,但在 OSX El Capitan 上仍然发生。这个问题的根源是Python假设locale环境变量的格式为 language_region.encoding。这个假设对于 Python 来说是严格的,因为当有效的语言和区域对不可用时,OSX 默认使用 UTF-8。

bugs.python.org关于这个问题的冗长讨论