docker python 提示错误UnicodeEncodeError: 'ascii' codec can't encode characters in position

来源:互联网 发布:万国数据fm经理待遇 编辑:程序博客网 时间:2024/05/17 06:25

问题说明

docker的python容器中执行print(‘测试’),常见的错误提示,在宿主机不会出现

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-127: ordinal not in range(128)

问题分析

原因是因为locale 的设置导致 shell 的stdin/stdout/stderr 的默认编码为ascii,当用ascii编码去解释python3默认unicode编码的时候,自然会有问题

问题解决

python3 的解决方式是 容器在初始化时候 需要设置shell的stdin/stdout/stderr 的默认编码方式为 utf-8,需要重启容器

# docker run 方式docker run -e PYTHONIOENCODING=utf-8 m_container:latest my-python3# docker-compose 方式 environment:      - PYTHONIOENCODING=utf-8
阅读全文
0 0