윈도우 실행파일 만들기

0. 준비하기

  • project_example
    • __init__.py
    • argparser.py
    • utils.py
    • main.py

실제 코드가 실행되는 파일인 main.py와 모듈화를 위해 필요한 __init__.py 파일을 포함하여 위 예시와 같은 구조로 파이썬 프로젝트 폴더를 구성합니다.

1. pyinstaller 설치하기

pip install pyinstaller

2. 실행파일 만들기

pyinstaller main.py

프로젝트 위치(~\project_example\)에서 위 코드를 실행하면 해당 위치에 dist, build라는 폴더가 생성되고, dist 폴더 안에 .exe 확장명을 가진 실행파일이 하나 생성됩니다.
이와 더불어 main.spec이라는 파일도 같이 생성되는데, 이 파일은 실행파일을 만들기 위한 메타 데이터가 담긴 파일이라고 생각하면 됩니다.

3. spec 파일로 실행파일 생성하기

main.spec 파일은 아래와 같은 코드로 구성되어 있는데, 실행파일이 잘 돌아가기 위해서는 이 파일의 Analysis가 가진 파라미터 중 pathex에 실행파일을 포함한 모든 파일들이 담겨 있는 프로젝트 경로가 들어가야 합니다. 저의 예시처럼 프로젝트 위치에 main.py 파일 외에 다른 파일들도 구성되어있고 main.py에서 기타 파일들의 코드를 가져와 사용하게 되는 경우에 이 pathex 값이 아래와 같이 들어있지 않게 되면 main 실행코드에서 다른 파일들에 접근하지 못하고 import error가 발생하게 됩니다.

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


block_cipher = None


a = Analysis(['main.py'],
             pathex=['C:\\Users\\jeon-yujin\\project_example'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             hooksconfig={},
             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)

필요에 따라 그 외 다른 파라미터 값들도 설정해주면 됩니다. 이렇게 spec 파일을 입맛에 따라 수정한 뒤 다시 실행파일을 만들 때에는 아래와 같이 main.py 가 아닌 main.spec 파일로 실행파일을 생성해줘야 합니다.

pyinstaller -F -w main.spec

위에서 추가된 -F-w 옵션은 각각 실행파일을 하나의 파일로 생성하고 콘솔창이 뜨지 않도록 하는 옵션입니다.
pyinstaller -h를 통해 다른 옵션들도 확인해보고 필요한 옵션을 넣어서 원하는 방식대로 실행파일을 만들 수 있습니다.

좋은 웹페이지 즐겨찾기