아미(아름다운미소)

[python] py2exe를 통한 Windows용 실행파일 만들기 본문

랭귀지/python

[python] py2exe를 통한 Windows용 실행파일 만들기

유키공 2017. 12. 28. 10:30
py2exe

- setup.py

# -*- coding: utf-8 -*-
from setuptools import setup
import py2exe

# name, description, version등의 정보는 일반적인 setup.py와 같습니다.
setup(name="test_py2xxx",
      description="py2exe test application",
      version="0.0.1",
      windows=[{"script": "run.py"}],
      options={
          "py2exe": {
              # PySide 구동에 필요한 모듈들은 포함시켜줍니다.
              "includes": ["PySide.QtCore",
                           "PySide.QtGui",
                           "PySide.QtWebKit",
                           "PySide.QtNetwork",
                           "PySide.QtXml"],
              # 존재하지 않거나 불필요한 파일은 제거합니다.
              "dll_excludes": ["msvcr71.dll",
                               "MSVCP90.dll"],
          }
      })

패키징은 다음 커맨드로 실행합니다.
$ python setup.py py2exe

결과 파일은 dist 디렉터리에 생성됩니다.
그런데 결과 파일이 몹시 복잡합니다

우선 배포에 필요한 DLL 등을 한번에 묶어 하나의 실행 파일로 배포하고 싶다면 다음과 같이 

bundle_files 플래그를 설정합니다.

# ...
setup(
    # ...
    options={
        "py2exe":{
            bundle_files: 1,
            # ...
        }
    })

하지만 여전히 library.zip은 남아있습니다.
이 파일은 실행에 필요한 Python 라이브러리들을 보관하고 있는 파일로 zipfile 옵션을 통해 없앨 수 있습니다.
setup(
    # ...
    options={
        "py2exe":{
            # ...
        }
    },
    zipfile=None)

마지막으로 실행 파일명이나 아이콘(.ico)파일을 변경하고 싶을 때는 다음과 같이 설정합니다.
# ...
setup(
    # ...
    windows=[{"scripts": "run.py",
              "icon_resources": [(1, "resources/window_icon.ico")],
              "dest_base": "myfirstapp"}],
    # ..
)



Comments