Python 스크립트를 EXE 파일로! py2exe

Python 스크립트를 EXE 파일로 만드는 py2exe 사용법에 대해 포스팅 합니다.
공식 튜토리얼 : http://www.py2exe.org/index.cgi/Tutorial

먼저 py2exe 모듈을 다운로드 합니다.
py2exe 공식 사이트 : http://www.py2exe.org

다운로드 링크에서 자신의 Python 버젼에 맞는 파일을 다운로드 하여 설치하도록 합니다. 설치가 끝났다면 이제 실습을 해보도록 하겠습니다.

먼저 폴더를 하나 만든 후 해당 폴더안에 EXE로 만들고자 하는 Python 스크립트 파일을 복사해 놓습니다.
그리고 아래와 스크립트를 하나 작성합니다. 여기서는 exe.py 라는 이름으로 하도록 하겠습니다.

# 파일명 : exe.py
from distutils.core import setup
import py2exe

setup(console=['EXE로 만들 파일명.py'])

그럼 폴더에 exe.py 와 EXE로 만들고자 하는 스크립트 파일이 두개 있을 것입니다. 이제 아래와 같이 입력을 합니다.

exe.py py2exe

무언가 주르르르르륵 지나간 후 dist 와 build 폴더가 생성 될 것입니다. dist 폴더를 확인해보면 EXE로 만들어진 파일이 있는것을 확인하실 수 있을 것입니다.

하지만 이렇게 할 경우 파일이 다수 생성되게 됩니다. 불필요한 파일이나 옵션을 줘서 단일 파일로 생성도 가능합니다.
http://www.py2exe.org/index.cgi/ListOfOptions

unbuffered : 만약 true로 설정하면 표준입출력에서 버퍼를 사용하지 않는 실행 파일을 생성하게 됩니다.
optimize : 코드를 최적화 합니다. 0=최적화 안함 , 1=일반적 최적화, 2=추가 최적화
include : 포함할 모듈의 이름을 리스트 형태로 지정합니다.
packages : 단일 모듈이 아닌 패키지 이름을 리스트 형태로 지정합니다. 여기에 명시된 패키지는 통상 서브 패키지까지 포함합니다.
ignore : 패키지나 모듈을 찾다가 없으면 무시할 모듈을 명시합니다.
exclude : 제외할 모듈을 명시합니다.
dll_exclude : 제외할 DLL 파일을 명시합니다.
dist_dir : 최종 바이너리를 생성할 경로를 지정합니다. 기본적으로는 setup.py 파일이 실행되는 디렉토리에 dist 디렉토리를 생성하게 됩니다.
compressed : 압축된 zip 파일을 생성할 것인지 여부를 지정합니다. 불리언 값입니다.
xref : 불리언 값입니다. 교차 참조를 보여줄 것인지 여부를 지정합니다.
bundle_files : 번들링 여부를 결정합니다. 3=번들링하지 않음(디폴트), 2=기본번들링(파이썬 인터프리터를 포함하지 않음), 1=파이썬 인터프리터까지 번들링
skip_archive : 파이썬 바이트 코드 파일을 번들에 포함하지 않고 파일시스템에 직접 생성합니다.
ascii : (불리언) encodings, codec 패키지를 포함하지 않습니다.
custom_boot_script : 실행환경 세팅 후 실행할 파이썬 코드를 명시합니다.

코멘트로 uptx님이 알려주신 코드를 조금 수정하여 첨부하오니 참고하시기 바랍니다.

#!c:\python27\python.exe
from distutils.core import setup
import py2exe

excludes = ['pywin', 'pywin.debugger', 'pywin.debugger.dbgcon', 'pywin.dialogs', 'pywin.dialogs.list', 'win32com.server']

options = {
    'bundle_files': 1,   # create singlefile exe
    'compressed': 1,     # compress the library archive
    'excludes': excludes,
    'dll_excludes': ['w9xpopen.exe'] # we don't need this, 윈도우가 있는 프로그램은 필요
}

setup(
    options = {'py2exe': options},
    zipfile = None,     # append zip-archive to the executable.
    console = ['run.py']
)

끝으로 패키징한 파일이 정상적으로 실행이 안되는 경우가 있다. 이는 "Microsoft Visual C++ 2008 Redistributable Package" 가 설치되어 있지 않은 시스템에서 나는 문제이다.

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=29

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다