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,可惜不是第一名的答案,否则也不会单独开贴记录一下。

posted @ 2022-04-21 14:21  又是火星人  阅读(141)  评论(0编辑  收藏  举报