Search code examples
pythonpython-3.xcentospip

pip install - locale.Error: unsupported locale setting


Full stacktrace:

➜  ~ pip install virtualenv
Traceback (most recent call last):
  File "/usr/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main
    locale.setlocale(locale.LC_ALL, '')
  File "/usr/lib64/python3.4/locale.py", line 592, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

On the same server, I successfully ran pip install virtualenv with python 2.7.x.

Now, I've just installed python3.4 using curl https://bootstrap.pypa.io/get-pip.py | python3.4.

➜  ~ pip --version
pip 8.1.1 from /usr/lib/python3.4/site-packages (python 3.4)

pip uninstall virtualenv throws the same error too


Solution

  • The root cause is: your environment variable LC_ALL is missing or invalid somehow

    Short answer-

    just run the following command:

    $ export LC_ALL=C
    

    If you keep getting the error in new terminal windows, add it at the bottom of your .bashrc file.

    Long answer-

    Here is my locale settings:

    $ locale
    LANG=en_US.UTF-8
    LANGUAGE=
    LC_CTYPE="C"
    LC_NUMERIC="C"
    LC_TIME="C"
    LC_COLLATE="C"
    LC_MONETARY="C"
    LC_MESSAGES="C"
    LC_PAPER="C"
    LC_NAME="C"
    LC_ADDRESS="C"
    LC_TELEPHONE="C"
    LC_MEASUREMENT="C"
    LC_IDENTIFICATION="C"
    LC_ALL=C
    

    Python2.7

        $ uname -a
        Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux
        $ python --version
        Python 2.7.9
        $ pip --version
        pip 8.1.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
        $ unset LC_ALL
        $ pip install virtualenv
        Traceback (most recent call last):
          File "/usr/local/bin/pip", line 11, in <module>
            sys.exit(main())
          File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main
            locale.setlocale(locale.LC_ALL, '')
          File "/usr/lib/python2.7/locale.py", line 579, in setlocale
            return _setlocale(category, locale)
        locale.Error: unsupported locale setting
        $ export LC_ALL=C
        $ pip install virtualenv
        Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/lib/python2.7/dist-packages