주제: Python 으로 만들 어플을 배포용 실행 파일로 만들자.
1. 프로그램 선택 시행 착오.
. 기존에 TkInter 을 사용했을때는.. Py2Exe 를 이용해서 실행 파일을 만들었다.
근데... 이게 PyQt 를 이용했을때는 어떤때는 잘 되다가 어떤때는 에러가 난다.
그래서 실행 파일을 만드는 다른 툴을 찿기로 했다.
Py2Exe , cx_Freeze ... 두개를 구글링 하면서 이것 저것 다 해 보았다. 안된다....
2. 프로그램 선택과 테스트결과
. pyInstaller ... 검색중에 PyInstaller 이란 프로그램이 있단디.
일단.. 다운 받고 설치하고 테스트..... 와우 끝내 준다.... 1개의 파일로 만들고... Win7 winXp
다 돌아 간다.
3. 설치 과정.
A. pywin32 설치.
. pyinstaller 는 PyWin32 나 pypiwin32 가 설치되어 있어야 한다.
. 만약에 설치되어 있지 않다면 pip로 pyinstaller 설치하면 pypiwin32 가 자동으로 설치된다.
.pip 에서 pywin 이 자동설치가 안되는 경우 먼저 다음 사이트에서 pywin32 를 다운 받는다.
http://sourceforge.net/projects/pywin32/files/pywin32/
에서 Build 219 를 선택.
난 os를 Win7 64bit 를 쓰지만 호환성때문에 Python3.4 32Bit 를 쓴다.
그래서 pywin32-219.win32-py3.4.exe 를 다운로드 해서 설치 했다.(설치은 그냥 된다.)
B. pyinstaller 설치
. 기존에 설치했던 버전은 실행파일이 한글로 된폴더에 있으면 에러가 난다.
. 그래서 새버전을 설치하기로 했다.
방법1
. pyinstaller 가 업그레이드 되어서 이제는
pip install pyinstaller 또는
pip install -U pyinstaller
로 설치하면 이상없이 설치된다.
방법2
. 아래사이트에 접속해서
PyInstaller 3.0 (zip) 을 다운받아 압축을 푼다.
. 다시 CMD 창을 열어서 pyinstaller 압축을 푼 폴더로 들어간뒤.
python setup.py install
추가 : pyinstaller 3.2 로 업그레이 하려고 했더니 unicode cp949 코덱 관련 오류가 난다
그래서 아예 개발자 버전 3.3 으로 설치했다.
PyInstaller-3.3.dev0+483c819 future-0.16.0
설치 방법은 아래/
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
A. 시행착오
. pip install -U pyinstaller 요걸로는 잘 안된다.
중간에 에러가 난다.( PyWin32 가 설치 안되어서 일수도)
. http://www.pyinstaller.org 에서 자신의 파이썬 버전과 맞는 것을 다운 받는다.
내 경우 Python3.4 이므로 하단의 Py3.zip 파일을 다운 받아 압축을 풀었다.
.CMD 창을 열어서 pyinstaller 압축을 푼 폴더로 들어간뒤.
python setup.py install
... 헉.... 에러가 난다... console 창의 에러 메세지를 보니... PyWin32 가 설치 되어 있어야한단다.
PyInstaller 를 설치 하기 위해서는 PyWin2가 받드시 설치 되어 있어야 한다.
( 아마 , Py2exe 나 cx_Freeze 가 에러난 이유도 이것 PyInw32가 설치 안되어서 인듯.)
B. 설치 성공
. 다시 CMD 창을 열어서 pyinstaller 압축을 푼 폴더로 들어간뒤.
python setup.py install
와 에러 없이 잘 설치 된다. 굿......
다 설치하고 나서야 PyInstaller 설명서 를 찿았다.
http://pythonhosted.org/PyInstaller/#installing-using-pip
4. 실행 파일 만들기.
cmd 창을 열어서 내가 만든 소스가 있는 폴더로 이동.
다음과 같이 입력.
pyinstaller --onefile --noconsole --icon=아이콘파일이름.ico 소스파일(내파일이름)
내경우 배치파일을 만들었다 (make_exe.bat 내용은 별거 없다 아랫줄. )
pyinstaller --noconsole --icon="main.ico" "SvrCheckPs.py"
위의 명령처럼 실행하면 소스가 있는 폴더 아래이 build 와 dist 폴더가 생성된다.
dist 폴더안에 파일을 배포하면 된다.
5. Pyinstaller 옵션.
--vsrsion :현재 설치된 pyinstaller 버젼.
--onefile :한개의 파일로 만듬. 초기로딩 여러개의 파일일때보다 약간 느림.
1개의 파일로 만들경우 win7/xp는 실행되나
winows 8.1/10 은 압축을 풀지못한다는 에러 메세지 나오며 실행안됨.
--noconsole : 윈 gui 어플이므로 console 창을 열지 않는다.
--icon=아이콘파일이름: 실행파일의 아이콘이름.