728x90
반응형
현장실습에서 맡은 업무로 멀티모달 인터페이스 애플리케이션 제작이 있는데, 손을 인식하는 과정에서 mediapipe이 사용된다.
GUI로 동작하는 .exe 파일이 최종 결과물이기 때문에 작성한 코드를 pyinstaller로 빌드했는데, 계속해서 다음과 같은 에러가 표시되었다.
Unhandled exception in script
Failed to execute script 'pyi_rth_mplconfig' due to unhandled exception: DLL load failed while importing _ctypes: 지정된 모듈을 찾을 수 없습니다.
구글링을 해보니 흔히 있는 에러는 아니고, 유독 mediapipe 라이브러리를 사용한 애플리케이션을 빌드할 때 많이 발생하는 것 같았다. 이거 때문에 열린 issue도 있었음.
내가 해결한 방법은 다음과 같다.
먼저, 빌드할 코드에서 사용하고 있는 mediapipe 라이브러리 위치를 찾는다.
$ python
>>> import mediapipe
>>> print(mediapipe.__file__)
나는 가상환경을 쓰다보니 .venv 폴더 안에 들어있었다.
C:\Users\Admin\Desktop\gui\.venv\Lib\site-packages\mediapipe\__init__.py
위치를 찾으면, pyinstaller 실행시 파라미터로 위치를 넘겨주면 된다.
만약 빌드할 파일이 main.py 라면,
pyinstaller --add-data "C:\Users\Admin\Desktop\gui\.venv\Lib\site-packages\mediapipe;mediapipe/" main.py
여기에 나는 결과로 .exe 파일 하나로 만들기 원했기 때문에 --onefile 옵션을 달아준다. GUI 프로그램이기 때문에 --windowed도 추가
pyinstaller --onefile --windowed --add-data "C:\Users\Admin\Desktop\gui\.venv\Lib\site-packages\mediapipe;mediapipe/" main.py
이렇게 빌드하면 마침내 에러가 없는 프로그램이 생성된다!
728x90
반응형
'개발 > Python' 카테고리의 다른 글
[Python/GUI] PySide GUI에서 로딩 GIF 이미지 표시하기 (0) | 2024.08.09 |
---|---|
[Python/ML] 인터넷, API 요청 없이 실시간 음성 인식 구현하기(오프라인 실시간 음성 인식) (작성중) (0) | 2024.08.08 |
[Python/ML] MediaPipe를 이용한 손가락 인식 (0) | 2024.07.17 |