Shine's dev log

[python] face_recognition 라이브러리 pyinstaller 사용시 RuntimeError 오류 해결 본문

프로그래밍, 알고리즘

[python] face_recognition 라이브러리 pyinstaller 사용시 RuntimeError 오류 해결

dong1 2021. 5. 20. 03:08

face_recognition은 얼굴 인식이나 신원 인증에 사용하는 파이썬 라이브러리이다.

 

face_recognition 라이브러리를 포함한 파이썬 파일을 pyinstaller를 통해 exe로 변환하고 싶어서 변환을 했는데 아래와 같은 오류가 떴다.

 

 

대충 살펴보면 뭐 face_recognition_models/models/ 경로에 shape_prediction_68_face_landmark.dat 데이터 파일이 없다는 그런 오류이다.

 

 

해결법)

 

우선 shape_prediction_68_face_landmark.dat 와 같은 데이터 파일들을 다운받아야 한다.

파이썬 프로젝트에서 라이브러리 폴더에 가서 face_recognition_models 폴더에 있는 4개의 데이터 파일을 복사해놓는다.

 

나는 파이썬 프로젝트를 venv로 생성했기 때문에, "프로젝트 폴더/venv/Lib/site-packages/face_recognition_models/models/" 경로에 위치해 있다.

 

 

 

 

 

 

다음으로 파이썬 프로젝트에서 라이브러리 폴더에 가서 face_recognition 폴더에 있는 api.py를 찾아준다.

 

나는 파이썬 프로젝트를 venv로 생성했기 때문에, "프로젝트 폴더/venv/Lib/site-packages/face_recognition/api.py" 경로에 위치해있다.

 

해당 api.py 파일을 열어보면 19번째 줄부터 30번째 줄까지 아래 그림과 같이 되어있을 것이다.

 

 

 

 

 

 

해당 코드의 dlib.shape_predictor()의 파라미터를 아래 그림과 같이 아까 복사한 4개의 데이터 파일의 이름으로 바꿔치기해준다.

 

 

 

 

이렇게 되었다면 api.py를 저장해주고, pyinstaller를 이용해 exe 파일을 만들어준다.

 

마지막으로 아까 받은 4개의 데이터 파일을 exe 파일의 위치에 붙여놓기 해주면 된다.

 

 

나의 경우, 이렇게 하니까 잘 실행이 되었다.

 

사실 왜 되는지는 모르겠지만,, 에러 코드 보고 이것저것 해보다보니 이렇게 해결했다.