본문 바로가기

오류해결

[matplotlib font family error] findfont: Font family ['NanumGothic'] not found. Falling back to DejaVu Sans. / font_manager matplotlib centos7

Server 
- OS : CentOs7
- miniconda env 환경
- Python version : 3.9.7
- matplotlib : 3.4.3

 

docker 내부에 chart그래프를 생성하는 flask서버를 셋팅하는 과정에서 생긴 오류이다.

에러메세지를 확인하니 font를 찾지 못하여 오류가 났다.
findfont: Font family ['NanumGothic'] not found. Falling back to DejaVu Sans.

matplotlib 한글 오류 해결하는 글들이 많았는데, 여러가지 시행착오 하다가 해결한 방법을 기록하게 되었다!


1. 현재 서버에 내가 사용하려는 폰트가 있는지 확인!

/usr/share/fonts

이 경로에서 폰트 확인을 할 수 있는데,  ' DejaVu Sans ' 이 폰트만 있었다.

 

2. 사용하고자 하는 font 설치하기!
( NanumGothic을 이 폴더에 설치했다)

1.경로위치
/usr/share/fonts/

2. 이 경로에서 폰트 다운 명령어를 입력한다.
wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip

3. 다운받은 zip파일 압축해제하기!
unzip NanumFont_TTF_ALL.zip -d NanumFont

만약, bash: unzip: command not found 이런 문구가 뜬다면 unzip을 설치하고, 다시 압축해제 명령어 입력하면 된다!
# yum install unzip

다운이 다 되면 Nanum폰트들을 볼 수 있다.

다운받은 zip파일을 삭제 해준다!
# rm -f NanumFont_TTF_ALL.zip

폰트를 새로 설치 했기 때문에 캐시를 삭제했다.
# fc-cache -f -v

 

3. matplotlib font 캐시 삭제하기

matplotlib에 남아있는 폰트 목록 캐시를 삭제한다. 새로 폰트를 적용했기 때문에 이 캐시에는 설치한 폰트목록이 없을것이다.

1. 이 경로로 이동한다.
# cd ~/.cache/matplotlib

2. 폰트 목록 삭제하기
# rm -rf fontlist-v330.json

 

크게 이 세가지를 했더니,

차트에서 깨지던 한글이 잘 나왔다!!