Docker Python设置utf-8语言环境

我正在尝试运行我的python文件,该文件首先读取中文字符串并打印。

这是我的Dockerfile

FROM python:2.7-onbuild

ENV LANG en_US.UTF-8

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

CMD ["python", "app.py"]

这是我的python文件:

    # -*- coding: utf-8 -*-

import jieba

s = "我来到北京清华大学"

s = s.decode('utf-8')

print type(s), s

然后我运行:

docker build -t python-example .

docker run python-example

我得到的错误: UnicodeEncodeError: 'ascii' codec can't encode characters in position

0-8: ordinal not in range(128)

当我在本地运行它时,它工作正常。

回答:

在使用主管和gunicorn部署Django应用程序时遇到了同样的问题。

解决的问题是将以下行添加到我的主管配置文件中:

environment=LANG="es_ES.utf8", LC_ALL="es_ES.UTF-8", LC_LANG="es_ES.UTF-8"

对于您的情况,请确保要打印的中文语言环境可用并已安装在Docker容器中。此博客描述了如何执行此操作:dockerfile示例(使用中文语言环境而不是en_CA.UTF-8):

FROM ubuntu:15.10

MAINTAINER Mobify <ops@mobify.com>

RUN apt-get -qq update && \

apt-get -q -y upgrade && \

apt-get install -y sudo curl wget locales && \

rm -rf /var/lib/apt/lists/*

# Ensure that we always use UTF-8 and with Canadian English locale

RUN locale-gen en_CA.UTF-8

COPY ./default_locale /etc/default/locale

RUN chmod 0755 /etc/default/locale

ENV LC_ALL=en_CA.UTF-8

ENV LANG=en_CA.UTF-8

ENV LANGUAGE=en_CA.UTF-8

希望这会引导您走向正确的方向。

以上是 Docker Python设置utf-8语言环境 的全部内容, 来源链接: utcz.com/qa/427187.html

回到顶部