我正在尝试运行我的 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)
当我在本地运行它时,它工作正常。
原文由 jxn 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在使用 supervisor 和 gunicorn 部署 Django 应用程序时遇到了同样的问题。
解决它的方法是将以下行添加到我的主管配置文件中:
对于您的情况,请确保您要打印的中文语言环境可用并安装在您的 docker 容器中。这个 博客 描述了如何做到这一点:示例 dockerfile(使用中文语言环境而不是 en_CA.UTF-8):
希望这会引导您进入正确的方向。