首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有基于构建python的docker的Locale.Error

带有基于构建python的docker的Locale.Error
EN

Stack Overflow用户
提问于 2016-03-29 14:31:31
回答 1查看 938关注 0票数 0

我是新的docker,如果有人能帮助我摆脱这个错误,同时建立docker映像,我将不胜感激。它给出了某种区域设置错误。我怎样才能摆脱这个错误?

代码语言:javascript
复制
Collecting pip
Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB)
Collecting setuptools
Downloading setuptools-20.3.1-py2.py3-none-any.whl (508kB)
Collecting wheel
Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-8.1.1 setuptools-20.3.1 wheel-0.29.0
+ pip install --no-cache-dir --upgrade pip==8.0.2
Traceback (most recent call last):
File "/usr/bin/pip", line 11, in 
sys.exit(main())
File "/usr/lib/python2.7/site-packages/pip/__init__.py", line 215, in main
locale.setlocale(locale.LC_ALL, '')
File "/usr/lib64/python2.7/locale.py", line 547, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
The command '/bin/sh -c set -ex && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" && curl -fSL 'https://bootstrap.pypa.io/get-pip.py' | python2 && pip install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION' returned a non-zero code: 1

这是我的Dockerfile:

代码语言:javascript
复制
FROM mybase:1.0.7

RUN set -x \
&& yum install -y python-devel libffi-devel python-cffi \
&& yum clean all

ENV LANG C.UTF-8

ENV GPG_KEY C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF

ENV PYTHON_VERSION 2.7.11

ENV PYTHON_PIP_VERSION 8.0.2

RUN set -ex \
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
&& curl -fSL 'https://bootstrap.pypa.io/get-pip.py' | python2 \
&& pip install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION

RUN pip install --no-cache-dir virtualenv

CMD ["python2"]
EN

回答 1

Stack Overflow用户

发布于 2016-03-29 15:29:10

locale.setlocale文档说locale应该是有效的。如果传递的是空字符串,则使用LANG变量来设置区域设置。导致此错误的原因可能是您的LANG不是受支持的区域设置

在docker脚本中,将LANG设置为C.UTF-8。在glibc中,C.UTF-8看起来不是一个受支持的语言环境,我猜这就是为什么在Python语言中(请参阅thisthis)。

您可以将LANG设置为支持的类型,如en_US.UTF-8 (我的电脑上的默认类型)。

在Python-2.6上,我得到了以下结果

代码语言:javascript
复制
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, "")
'en_US.utf8'
>>> locale.setlocale(locale.LC_ALL, "C.UTF-8")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/locale.py", line 513, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting
>>> locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
'en_US.UTF-8'
>>> locale.setlocale(locale.LC_ALL, "de_DE.UTF-8")
'de_DE.UTF-8'

通过运行以下命令,可以查看计算机上可用的区域设置

代码语言:javascript
复制
$ locale -a
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36277025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档