Python locale error: unsupported locale setting

3.8K    Asked by JakeSanderson in Python , Asked on Apr 13, 2021

Why do I get the following error when doing this in python:

>>> import locale

>>> print str( locale.getlocale() )

(None, None)

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

Traceback (most recent call last):

  File "", line 1, in

  File "/usr/lib/python2.7/locale.py", line 531, in setlocale

    return _setlocale(category, locale)

locale.Error: unsupported locale setting

This works with other locales like fr or nl as well. I'm using Ubuntu 11.04.

Update: Doing the following did not yield anything:

dpkg-reconfigure locales

perl: warning: Setting locale failed.

perl: warning: Please check that your locale settings:

    LANGUAGE = (unset),

    LC_ALL = (unset),

    LC_CTYPE = "UTF-8",

    LANG = (unset)

    are supported and installed on your system.

perl: warning: Falling back to the standard locale ("C").

locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_ALL to default locale: No such file or directory


Answered by Jake Sanderson

Run following commands to get rid of locale.error: unsupported locale setting

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"

sudo dpkg-reconfigure locales

It will solve this.

Make sure to match the .UTF-8 part to the actual syntax found in the output of locale -a e.g. .utf8 on some systems.



Your Answer

Answer (1)

The "Unsupported Locale Setting" error in Python usually occurs when you try to set a locale that is not supported by your system. This can happen for various reasons, such as the locale not being installed or the locale string being incorrect.

Here are steps to diagnose and resolve this issue:

1. Check Available Locales on Your System

To see which locales are available on your system, you can run the following command in your terminal:

On Linux and macOS:

locale -a

On Windows:

Windows doesn't have a direct equivalent to locale -a, but you can find the available locales in the Region and Language settings in the Control Panel.

2. Install Missing Locales

If the desired locale is not listed, you may need to install it.

On Linux (Debian/Ubuntu):

sudo locale-gen 
sudo update-locale

For example, to install en_US.UTF-8:

  sudo locale-gen en_US.UTF-8 

sudo update-localeOn macOS:

Locales are typically pre-installed on macOS. If you don't see the locale you need, you might need to adjust your language and region settings in System Preferences.

3. Set the Locale in Python

Ensure you are setting the locale correctly in your Python script. Here’s an example of how to set the locale:

import locale

# Set locale to English (United States)
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')







5 Months

Interviews

Parent Categories