안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.
코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석 등의 다양한 패키지까지 초보자도 알기 쉽도록 내용을 정리해 놓았습니다.
업무는 물론 투자에도 도움이 될만한 전자공시시스템(DART)나 텔레그램(Telegram) 관련 패키지도 배울 수 있으니 많은 관심 부탁드립니다.
<Pyinstaller 관련 지난 글>
오늘은 지난 시간에 알아보았던 파이썬 용량 줄이는 방법을 제가 직접 수행하면서 새롭게 알게 된 내용을 공유드리겠습니다.
1. exe 파일의 과용량 원인
예전에 제가 만든 간단한 크롤링 GUI 프로그램의 용량이 200~300MB로 되는 문제가 있어서 여기저기 많이 찾아보니,
그 원인은 잘 이해는 가지 않지만 'conda와 pyinstaller가 잘 맞지 않아서' 였습니다.
저의 경우엔 아나콘다 패키지로 파이썬을 설치했었고, 아나콘다 패키지의 파이썬 인터프리터와 conda 기반의 패키지 관리 환경에 설치된 numpy와 pandas 같은 패키지들이 큰 용량으로 포함되었습니다. numpy와 pandas를 사용하지 않은 코드였는데도요!!
2. 임시 해결방안
그 당시 저는 가상환경 셋팅법이 너무 어려워서 아래와 같은 방법을 사용했었습니다.
Anaconda의 가상환경(제가 주로 사용하는 'base': conda)를 그대로 사용하면서 '--exclude 패키지명' 옵션으로 특정 패키지 제외
# 가장 큰 패키지인 pandas와 numpy 제외
pyinstaller -F -w --exclude pandas, --exclude numpy 파이썬 파일명.py
실제로 이 방법으로 330MB였던 프로그램을 45MB로 용량으로 줄였습니다.
하지만 pandas와 numpy를 사용했었다면 이 방법을 사용하지 못 했을거예요. 그래서 이 방법은 반쪽짜리 임시 해결책이라고 볼 수 있습니다.
3. 제대로 된 해결방안
위의 문제를 제대로 해결하기 위한 방법은 새로운 가상환경을 만들어서, 그 환경에서 pip install로 필요한 패키지를 설치한 다음, pyinstaller를 실행하는 것입니다.
가상환경을 만드는 방법은 아래에 정리해 두었으니 참고해주세요.
2021.12.07 - [파이썬 기초/개발환경 구축(VScode)] - [Python/VScode] 파이썬 가상환경 만들고 사용하는 법 상세정리
2021년 12월 10일 기준으로 예전과 조금 달라진 점이 있어서 공유드립니다.
2021년 5월 22일에 exe 파일을 만들었을 땐 190MB였던 파이썬 파일이 현재으로 다시 exe 파일로 만들어보니 87.3MB로 출력됩니다.
짧은 지식으로 추측해보건데, 현재 pyinstaller 버전(4.7)에서 그 동안 발생했던 용량 문제를 조금이나마 해결한 듯 합니다.
어쩌면 아래의 코드가 가장 가성비 좋은 해결방법일 수도 있겠다는 생각이 듭니다.
pip install --upgrade pyinstaller
위에서 조금이나마 해결했다고 하는 이유는 아래의 신규 생성한 가상환경에서 만든 exe 용량 때문입니다. 잘 보시면 약 70% 수준으로 감소한 것을 확인할 수 있습니다. 조금이라도 더 용량을 줄이고 싶으시다면 가상환경을 새로 만드시는 방법을 추천드립니다.
오늘 준비한 내용은 여기까지입니다.
다음 시간에는 pyinstaller로 exe 파일 패키징 시, pyqt 혹은 selenium를 사용한 파이썬 파일이 ui 파일과 chromedriver의 경로를 못 찾는 문제와 이러한 리소스 파일을 함께 포함하여 패키징 하는 방법에 대해서 다루어 보겠습니다.
감사합니다.
'파이썬 패키지 > 실행파일 배포' 카테고리의 다른 글
[pyinstaller/pywin32] 윈도우에서 새로운 가상환경을 만들고 pywin32가 포함된 exe 파일을 생성하면서 겪은 문제 정리 (4) | 2021.12.16 |
---|---|
[PyInstaller] 파이썬 프로그램 실행 파일로 만들어서 배포하는 방법 (ft. exe 파일 용량 줄이는 팁) (2) | 2021.06.08 |