完整堆栈跟踪:
➜ ~ 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
在同一台服务器上,我成功地使用python 2.7.x运行pip install virtualenv。
现在,我已经使用curl https://bootstrap.pypa.io/get-pip.py | python3.4安装了python3.4。
➜ ~ pip --version
pip 8.1.1 from /usr/lib/python3.4/site-packages (python 3.4)
PIP卸载virtualenv也抛出相同的错误
在Fedora上也有类似的问题:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python3.10/locale.py", line 620, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
结果发现“glibc-all-langpacks”包不见了。
dnf install -y glibc-all-langpacks
解决它。
错误消息表明区域设置有问题。如其他答案所示,要修复此问题,您需要修改您的区域设置。
在Mac OS X Sierra上,我发现最好的方法是修改~/bash_profile文件,如下所示:
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
除非您使用:source ~/.bash_profile重新加载bash概要文件,否则此更改不会立即在当前的cli会话中显示出来。
这个答案非常接近于我发布的其他不相同,不重复的问题的答案(即与pipenv无关),但恰好需要相同的解决方案。
对主持人:恕我直言;我之前的答案因为这个原因被删除了,但我觉得这有点傻,因为这个答案几乎适用于任何时候的错误是“区域问题”…但是,有许多不同的情况、语言和环境都可能触发该错误。
因此,A)将问题标记为重复是没有意义的,B)调整答案也没有意义,因为修正非常简单,在每种情况下都是一样的,并且没有从装饰中受益。