티스토리 뷰

발단과 전개

Triton Inference Server - python backend에서 로깅 목적으로 문자열을 출력하려니 다음과 같은 오류가 뜬다.

triton inference server UnicodeEncodeError: 'ascii' codec can't encode character '\xb6' in position 702: ordinal not in range(128)

"\xb6" "¶" 이 문자다.

 

해결 방법

조금 찾아보니, 다음과 같은 이슈를 찾을 수 있었다.

https://github.com/triton-inference-server/server/issues/4708

 

can't print chinese in Python backend · Issue #4708 · triton-inference-server/server

Python backend import json import triton_python_backend_utils as pb_utils class TritonPythonModel: def initialize(self, args): self.model_config = model_config = json.loads(args['model_config']) ou...

github.com

결론적으로, 다음 환경변수를 선언해주면 된다.

PYTHONIOENCODING="UTF-8"

Triton Inference Server의 PYTHONIOENCODING은 ascii가 default인 듯 한데, 추측이다. 찾아봐도 정보가 잘 나오지 않더라.

 

아래는 PYTHONIOENCODING에 관한 python docs의 설명이다.

PYTHONIOENCODING

If this is set before running the interpreter, it overrides the encoding used for stdin/stdout/stderr, in the syntax encodingname:errorhandler. Both the encodingname and the :errorhandler parts are optional and have the same meaning as in str.encode().
For stderr, the :errorhandler part is ignored; the handler will always be 'backslashreplace'.

Changed in version 3.4: The encodingname part is now optional.
Changed in version 3.6: On Windows, the encoding specified by this variable is ignored for interactive console buffers unless PYTHONLEGACYWINDOWSSTDIO is also specified. Files and pipes redirected through the standard streams are not affected.

'MLOps > Triton Inference Server' 카테고리의 다른 글

Triton Inference Server 따라하기 (1) - 소개  (0) 2023.12.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함