Python, A Handy Tool
Windows에서 파이썬 스크립트 실행용 exe 실행파일 구성방법 본문
Windows에서 파이썬 스크립트를 실행할 때마다 python.exe 사용하여 실행시키는 것은 사실 불편하다.
자주 사용하는 스크립트일 때는 더욱 그렇다.
Unix/Linux 경우에는 파이썬 스크립트 첫라인에 python 실행파일 경로명을 설정하여 실행모드로 해 두면
여느 유틸리티와 동일하게 실행시킬 수 있다.
Windows OS에서는 이런 방식이 지원되지 않는다.
Unix/Linux 환경에서와 같이, 파이썬 스크립트를 일반 유틸리티처럼 사용할 수 있도록 구성하는 방법이 있다.
python 확장모듈 중 하나인 setuptools의 cli.exe를 사용하면 간단하게 구성할 수 있다.
참고: setuptools 설치하기
setuptools가 아직 설치되어 있지 않다면, 아래의 웹 페이지에 지시된 절차에 따라 설치할 수 있다.
http://pypi.python.org/pypi/setuptools
test.exe로 실행하는 파이썬 스크립트 구성하기
방법은 다음과 같다.
1. 가정: test.exe로 실행할 수 있는 스크립트를 작성하고자 한다고 가정한다.
2. "test-script.py"라는 이름으로 파일을 생성하여 원하는 코드를 작성한다.
3. "test-script.py" 파일의 첫번째 라인에 Windows에 설치된 Python 실행파일 전체 경로명을 아래와 같은 형식으로 설정한다. (Unix/Linux에서와 같이 #! 뒤에 이 스크립트를 실행할 shell의 경로명을 설정하는 방식을 그대로 적용한다)
#!C:\Python26\python.exe4. setuptools의 cli.exe 파일을 test-script.py 파일이 있는 디렉토리에 카피한다. cli.exe 파일명을 "test.exe"로 변경저장한다.
5. 이제 test.exe를 실행시키면 파이썬 스크립트 test-script.py가 실행된다. test.exe는 Windows의 일반 유틸리티와 동일하게 사용된다.
test.exe가 아닌, 다른 이름으로 사용하려 한다면, 예를 들어 fileinfo.exe라는 이름의 실행파일을 사용하고자 한다면,
test.exe --> fileinfo.exe로, test-script.py --> fileinfo-script.py로 파일이름만 변경하여 저장한다.
setuptools의 cli.exe 실행파일은 *-sctipt.py 라는 파이썬 스크립트 파일을 실행시켜 주는 launcher 역할만 하는 실행 유틸리티이다.
오류 없이 동작할 수 있기 위해서는 스크립트 파일 이름과 스크립트 내의 첫 라인에 파이썬 실행파일 경로명을 설정하는 규칙만 따라주면 된다.
cli.exe 파일 위치 및 처리동작 개요
cli.exe 파일은 setuptools가 설치되어 있다면, python 설치 디렉토리 하위에 아래 디렉토리에서 찾을 수 있다.
\Lib\site-packages\setuptools\cli.exe또는 egg 압축파일로 설치되어 있는 경우, 아래와 같이 setuptools-버전-py버전.egg 파일을 압축유틸리티로 열면 setuptools 디렉토리 밑에서 cli.exe 파일을 찾을 수 있다.
Lib\site-packages\setuptools-0.6c12dev_r88846-py2.6.egg
cli.exe 파일은 다음의 그림과 같은 정해진 절차를 수행한다.
예시: "test*"의 파일 리스트를 출력하고 각 파일의 size를 출력하는 test.exe
test-script.py 스크립트 파일 내용
#!C:\Python26\python.exe
# coding: utf-8
import glob, os
for p in glob.glob('test*'):
print '%50s : %.2f KB' % (p, os.lstat(p).st_size / 1024.)
raw_input('paused... press any key....')
cli.exe --> test.exe 이름으로 동일 디렉토리에 저장
gui.exe
cli.exe는 CLI 형태의 파이썬 어플리케이션을 위한 실행기(launcher)이다.
GUI 어플리케이션인 경우, setuptools의 gui.exe를 사용한다. 사용방법은 동일하다.
단, 파이썬 스크립트의 첫 라인에 python.exe 대신에 pythonw.exe의 전체 경로명을 명시한다.
Comments