Please Enable JavaScript!
Gon[ Enable JavaScript ]

Streamlit utf-8 인코딩 에러 해결하기

웹 프로그래밍/Streamlit
반응형

앱을 시작했을 때 아래와 같은 오류가 발생하는 경우가 있습니다. 이것의 윈인은 파이썬 소스 내의 한글 때문입니다. 작업을 하다보면 주석이나 소스 내 텍스트에 한글이 들어갈 수 있습니다. 그렇기 때문에 해당 오류는 반드시 해결해야 할 문제입니다. 서버는 리눅스 우분트였기 때문에 다양한 인코딩 설정을 변경 했는데도 해결이 되지 않았습니다. 

 

▼ 결국 파이썬 소스 파일이 UTF-8 이 아닌 ISO 로 인코딩이 된 것을 확인할 수 있었습니다. 해당 파일의 인코딩을 UTF-8 로 변환한 파일을 새로 만들고 기존 소스 파일을 지운다음 교체하는 것으로 해결을 보았습니다. 이제 그 과정을 보시겠습니다.

 

'utf-8' codec can't decode byte 0xbe in position 1636: invalid start byte

 

 

▼ 실행 파이썬 파일의 인코딩이 utf-8 아닐 수 있습니다. 확인해 보시고 아니라면 파일 포맷을 변경합니다. 파일의 인코딩을 확인하는 방법은 아래와 같습니다. 아래 명령어를 실행한 결과 인코딩 charset ISO 인것을 알 수 있습니다. 

file -i <파일명>

 

 

▼ 다시 UTF-8 로 변환한 파일을 새로 만들고 기존 파일을 지웁니다. 그리고 mv 명령을 이용해서 지운 파일 이름으로 변경합니다. 

 // UTF-8 로 변환한 파일 생성
iconv -f <현재_인코딩> -t utf-8 your_script.py -o your_script_utf8.py  
rm app.py  // 기존 파일 삭제
mv app_utf8.py app.py  // 인코딩을 변경해서 만든 파일의 이름을 변경

 

 

▼ 이렇게 변경하고 실행한 결과는 다음과 같습니다. 제대로 실행된 것을 알 수 있습니다.


 

 

반응형
Posted by 녹두장군1
,