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

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

环境

通过腾讯云CloudShell登陆轻量应用服务器,显示环境变量是:

Last login: Thu Apr 21 11:24:29 2022 from 159.x.y.z
-bash: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)

问题:

build django app的images时发生错误

[root@VM-4-9-centos django_docker]# docker-compose build
/bin/sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)
db uses an image, skipping
Building web
Step 1/9 : FROM python:3.8
 ---> cf0ca5be5f0b
Step 2/9 : ENV PYTHONDONTWRITEBYTECODE=1
 ---> Running in 99869918055e
Removing intermediate container 99869918055e
 ---> b4e4163a3257
Step 3/9 : ENV PYTHONUNBUFFERED=1
 ---> Running in c95226cdaca0
Removing intermediate container c95226cdaca0
 ---> c9e8a605d019
Step 4/9 : workdir /code
 ---> Running in 3d1dcbfeabf6
Removing intermediate container 3d1dcbfeabf6
 ---> a9927cb5996a
Step 5/9 : copY . /code/
 ---> fd886bca8839
Step 6/9 : copY ./deploy/entrypoint.sh /
 ---> b552493cfe3d
Step 7/9 : RUN pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple
 ---> Running in f36088a6dff4
Writing to /root/.config/pip/pip.conf
Removing intermediate container f36088a6dff4
 ---> 7eddf2896270
Step 8/9 : RUN pip install -r requirements.txt
 ---> Running in 767c0524e983
Looking in indexes: https://mirrors.cloud.tencent.com/pypi/simple
Collecting django~=3.2.5
  Downloading https://mirrors.cloud.tencent.com/pypi/packages/c3/68/b63abc009adee25c1bd266b3740e173eab656608cf21641594a37e02cf57/Django-3.2.13-py3-none-any.whl (7.9 MB)
Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 11, in <module>
    load_entry_point('docker-compose==1.18.0', 'console_scripts', 'docker-compose')()
  File "/usr/lib/python3.6/site-packages/compose/cli/main.py", line 71, in main
    command()
  File "/usr/lib/python3.6/site-packages/compose/cli/main.py", line 124, in perform_command
    handler(command, command_options)
  File "/usr/lib/python3.6/site-packages/compose/cli/main.py", line 254, in build
    build_args=build_args)
  File "/usr/lib/python3.6/site-packages/compose/project.py", line 364, in build
    service.build(no_cache, pull, force_rm, memory, build_args)
  File "/usr/lib/python3.6/site-packages/compose/service.py", line 972, in build
    all_events = stream_output(build_output, sys.stdout)
  File "/usr/lib/python3.6/site-packages/compose/progress_stream.py", line 23, in stream_output
    print_output_event(event, stream, is_terminal)
  File "/usr/lib/python3.6/site-packages/compose/progress_stream.py", line 90, in print_output_event
    stream.write("%s%s" % (event['stream'], terminator))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 5-44: ordinal not in range(128)

解决办法:

执行以下shell命令

export PYTHONIOENCODING=UTF-8

备注

答案来自于 stackoverflow,可惜不是第一名的答案,否则也不会单独开贴记录一下。

相关文章

1. General Supported Versions 2. Settings STATIC_URL MED...
问题01:Django枚举类型扩展方法(Model.get_FOO_display()) ...
verbose_name 可以作为第一个参数传入,使书写更加工整和有序...
# use_2to3 is invalid&#xA;# Django枚举类型扩展方法&a...
一、层次结构 GenericViewSet(ViewSetMixin, generics.Gener...