pypa / pipenv

Python Development Workflow for Humans.

Home Page:https://pipenv.pypa.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ValueError: unknown locale: UTF-8

douglasmiranda opened this issue · comments

So, I was using pipenv 3.1.* or 3.2.*, now I'm using pipenv==3.3.3 on macOS Sierra.

And this happens:

Creating a Pipfile for this project...
Creating a virtualenv for this project...
Traceback (most recent call last):
  File "/usr/local/bin/pew", line 7, in <module>
    from pew.pew import pew
  File "/usr/local/lib/python2.7/site-packages/pew/__init__.py", line 11, in <module>
    from . import pew
  File "/usr/local/lib/python2.7/site-packages/pew/pew.py", line 36, in <module>
    from pew._utils import (check_call, invoke, expandpath, own, env_bin_dir,
  File "/usr/local/lib/python2.7/site-packages/pew/_utils.py", line 22, in <module>
    encoding = locale.getlocale()[1] or 'ascii'
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/locale.py", line 564, in getlocale
    return _parse_localename(localename)
  File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/locale.py", line 477, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

A strange thing, since I didn't changed anything on macOS locale settings, but I've fixed by adding, on my ~/.bash_profile (~/.zshrc):

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

I don't know if anyone will have the same issue, but if this is not something for pipenv to bypass without error or something, you can close the issue. =]

Yep, looks like this is a macOS bug that locale.getlocale() can encounter. The only suggested fix is the one you've provided. Thanks for taking the time to document this :)

I keep getting this even if I added the lines in .profile and .bash_profile. :/

@behconsci , what shell are you using ?
if using zsh add in ~/.zshrc

Adding the following lines into "~/.zshrc" fixed the problem in my environment:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Placing this on my .bash_profile worked for me

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

remember to source ~/.bash_profile

Seems this is caused by terminal apps automatically setting locale variables. Both iTerm and Terminal.app have an option "Set locale variables..." enabled by default and set LC_CTYPE=UTF-8. Unsetting this envvar removes the problem.

hi guys,
Placing this on my .bash_profile worked for me

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

thanks @douglasmiranda it works with me.
I just need to open new terminal window even after source ~/.bash_profile and everything is ok.

if you have to create a /.bash_profile file, then ensure you source ~/.bash_profile. Thanks to @esirK, worked for me.