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.
Most helpful comment
Placing this on my .bash_profile worked for me