完整堆栈跟踪:

➜  ~ 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也抛出相同的错误


当前回答

有人可能会觉得有用。您可以将这些区域设置放在.bashrc文件中,该文件通常位于主目录中。 只需在.bashrc中添加以下命令: 出口LC_ALL = C 然后输入source .bashrc 现在,您不需要每次都手动调用此命令,例如当您通过ssh连接时。

其他回答

有人可能会觉得有用。您可以将这些区域设置放在.bashrc文件中,该文件通常位于主目录中。 只需在.bashrc中添加以下命令: 出口LC_ALL = C 然后输入source .bashrc 现在,您不需要每次都手动调用此命令,例如当您通过ssh连接时。

在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

解决它。

执行以下命令(可以运行):

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

对于Dockerfile,这适用于我:

RUN locale-gen en_US.UTF-8  
ENV LANG en_US.UTF-8  
ENV LANGUAGE en_US:en  
ENV LC_ALL en_US.UTF-8  

如何安装locale-gen?

Docker ubuntu /bin/sh: 1: locale-gen: not found

虽然您可以设置环境导出env变量,但每次启动会话时都必须这样做。以这种方式设置locale将永久性地解决问题:

sudo apt-get install locales
sudo locale-gen en_US.UTF-8
sudo echo "LANG=en_US.UTF-8" > /etc/default/locale