DEEP.I - Lab

오프라인 공간의 지능화를 꿈꾸는 딥아이 연구실입니다.

Python/Python

[Python] Pyinstaller 오류 : A RecursionError (maximum recursion depth exceeded) occurred.For working around please follow these instructions 해결하기

Jongwon Kim 2021. 3. 24. 14:20
반응형

Concept

Pyinstaller는 파이썬 기반 실행 파일을 만드는 강력한 툴입니다. 윈도우나 맥 환경에 맞추어 자동으로 라이브러리와 필요 모듈을 내장하기 때문에 쉽게 배포판을 만들수 있죠. 

 

하지만, 파이썬 자체 인터프리터의 용량과 기타 압축 한계로 인해 C 기반 프로그램보다 용량이 상당히 커진다는 단점이 있기는 합니다. 이를 위해 사용하는 오픈 라이브러리를 최소화하여 프로그래밍 하게됩니다.

 

프로젝트가 커지면 정말 많은 라이브러리를 Import하게 되는데, 이때 오류가 발생하곤 합니다.

 

 

파이썬을 실행파일로 만드는 과정에서 기준치 이상의 메모리 연산량을 요구하기 때문에 발생하는 오류입니다. 이를 해결하기 위해서는 오류와 함께 코드가 실행된 폴더에 생성되는 .spec 파일을 수정해야 합니다.

 

# -*- mode: python ; coding: utf-8 -*-

## 추가 코드
import sys
sys.setrecursionlimit(5000)
## 추가 코드

block_cipher = None


a = Analysis(['run_mvp.py'],
             pathex=['I:\\1ST_MEETING\\CODE\\DEEP_EYE_GPU\\MVP_2'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

 

txt 파일로 실행 한 뒤, 상단에 2줄을 추가해서 제한량을 늘려주어야 합니다. 기존 제한은 1000이라고 합니다. 저장한 다음 .spec 파일을 통해 다시 pyinstaller를 실행합니다.

 

pyinstaller 실행코드이름.spec

 

다소 시간이 걸리지만, 정상적으로 exe파일이 생성됩니다.

 

Reference

github.com/pyinstaller/pyinstaller/issues/5388

 

RecursionError · Issue #5388 · pyinstaller/pyinstaller

I'm getting back an error when I use Pyinstaller to obtain an executable file from a .py file. ============================================================= A RecursionError (maximum recursion ...

github.com

 

 

 

Your Best AI Partner DEEP.I
AI 바우처 공급 기업
객체 추적 및 행동 분석 솔루션 | 제조 생산품 품질 검사 솔루션 | AI 엣지 컴퓨팅 시스템 개발

인공지능 프로젝트 개발 외주 및 상담
E-mail: contact@deep-i.ai
Site: www.deep-i.ai

 

딥아이 DEEP.I | AI 기반 지능형 기업 솔루션

딥아이는 AI 기술의 정상화라는 목표를 갖고, 최첨단 딥러닝 기술 기반의 기업 솔루션을 제공하고 있으며, 이를 통해 고도의 AI 기반 객체 탐지, 분석, 추적 기능을 통합하여 다양한 산업 분야에

deep-i.ai

 

반응형