본문 바로가기
[IT]

pyinstaller 사용하기

by DDBobD 2024. 2. 27.
728x90
반응형

pyqt로 UI만들고 exe파일로 변환하여 사용을 해야하는데, exe파일로 변환하는것이 생각보다 쉽지 않았다. 그래서 나중에 또 exe파일로 변환해야 하는 상황을 대비하기 위해 나의 경험을 글로 남긴다.

 

 

pyinstaller 설치

pip install pyinstaller

 

 

pyinstaller 옵션

주로 사용하는 옵션은 -F, -D, -w, -n, -i, -h 정도이다.

-F(--onefile) : 모든 소스 파일을 하나의 실행 파일로 묶어 실행파일 하나만 생성한다.

-D(--onedir) : 실행파일과 실행에 필요한 파일을 하나의 디렉토리로 만들어 생성한다.

-w(--windowed) : exe파일을 실행 했을때 콘솔창을 안보이게 한다.

-n NAME(--name=NAME) : 실행파일의 이름을 설정한다.

-i ICON(--icon=ICON) : 실팽파일의 아이콘을 설정한다.

-h(--help) : pyinstalled 도움말 표시

 

 

exe파일 만들기

pyinstaller -w -F your_file.py

your_file.py를 콘솔창을 제외하고 하나의 실행파일로 만든다.

 

빌드 성공시 build, dist, .spec가 생성된다. build디렉토리는 우리가 크게 신경쓰지 않아도 되는 디렉토리이며, dist는 빌드후의 결과물이 저장되고, spec는 빌드 옵션을 조정하는 파일이다.

- build : 소스코드를 컴파일하고 실행 파일을 빌드할때 사용하는 임시 디렉토리.

- dist : 실행파일과 관련 파일들이 저장되는 디렉토리.

- .spec : 최초 빌드시 자동으로 생성되며, 사용자가 자세한 옵션을 설정할 수 있는 파일.

 

 

.spec 설정

간혹 빌드를하는 과정이나 실행파일을 실행 했을때, 다양한 이유로 에러가 발생하게 된다. 이때 .spec파일을 사용하여 이러한 문제를 해결할 수 있다.

 

- Analysis : 스크립트와 모든 종속성을 추적하고 분석하여 실행 파일에 포함해야 할 파일 및 모듈을 결정.

  - pathex : 모듈이나 패키지를 찾는 위치를 나타내며, 이 위치에 포함된 모든 파일과 폴더를 실행 파일에 포함시킴.

  - datas : 실행 파일과 함께 포함되는 데이터 파일의 경로를 지정.

  - hiddenimports : 실행 파일에 포함되어야 하는 임포트 되지 않은 모듈의 이름을 지정.

  - hookspath : 사용자 정의 훅 파일이 위치한 디렉토리의 경로를 지정.

  - excludes : 실행파일에서 제외 되어야하는 모듈의 이름을 지정.

- EXE : 실행파일을 생성하는데 필요한 정보를 포함. 명령어의 일부 옵션 설정가능.

  - name : 생성되는 실행 파일의 이름을 지정.

  - icon : 실행파일의 아이콘파일 경로를 지정.

  - console : 실행파일 실행시 콘솔창 활성화 여부 설정.

 

 

spec 작성 예시

- hiddenimports 입력 예시

  - from A import a : ['A.a']

  - import b : ['A.a', 'b']

- pathex 입력 예시

  - ['C:\\test\\module']

- datas 입력 예시

  - [('C:\\test\\image.ui', 'image.ui'),]

 

 

이후 spec로 빌드

pyinstaller your_file.spec

 

728x90
반응형