Я знаю, что это старый, но у меня была эта проблема, и я смог продолжать использовать:
locale.setlocale( locale.LC_ALL, '' )
Поскольку я хотел иметь возможность запускать этот код на машине с Windows, Linux и Mac OSX.
Приведенная выше строка должна работать с Windows-машиной по умолчанию, но не с Mac или Linux-машиной.
Если вы используете рабочий сервер с Apache, вам нужно настроить пользователя, работающего с сервисом Apache , с желаемой локалью.
Для этого (по крайней мере, в Ubuntu) перейдите в / etc / apache2 / и отредактируйте файл envvars.
Там вы увидите, что по умолчанию эта строка имеет вид:
export LANG=C
По этой причине вы получаете ошибку, замените ее на:
export LANG=en_CA.UTF-8
export LC_ALL=en_CA.UTF-8
Перезапустите Apache, и вы будете правы, как дождь.
Если вы не используете apache и получаете эту ошибку, вам просто нужно обновить .bash_profile или .profile пользователя, работающего с веб-сервером или приложением python, добавьте две вышеупомянутые строки в профиль bash и перезапустите терминальная сессия, запусти сервер и вуаля.
Надеюсь, это кому-нибудь поможет.