Python은 컴파일버전이 없는 py 자체로 구동되지만
python이 없는PC에서 급하게 구동하려면 exe 컴파일 배포형식이 꼭 필요할때가 있다.
그 방법을 찾아보자..
pyinstaller 다운
http://www.pyinstaller.org/downloads.html 에서
개발자버전 Current development code (zip) 다운로드
python3.6은 공식지원이 아직이라 Python3.4.3으로 진행한다..
개발자 버전을 d:\pyinstaller 폴더에 다운받았다면
c:\pyinstaller폴더 만들어서 압축푼 파일전부를 c:\pyinstaller폴더로 copy
path가 걸려있지 않다면 설치되지 않으므로 급하다면
python34\ 폴더에서 python.exe 을 pyinstaller 폴더로 복사후
pip install pyinstaller
설치되면
C:\Python34\Scripts> 스크립트 폴더로 설치됨을 알수있다.
여기까지하면 Pyinstaller 사용준비끝..
이제 파이썬에서 만든 실행가능한 .py파일을 가져다 .exe 실행파일로 만들어보자...
C:\Python34\Scripts 폴더에서
pyinstaller -w --onefile c:\Python34\Scripts\game-b10.py
변환명령은 절대경로 파일명 옵션들이 정확하다면
라이브러리와 DLL등 실행에 필요한 파일들을 묶어
game-b10.exe 컴파일 파일로 변환해준다........( Scripts폴더 작업 -> dist폴더 exe생성 )
옵션 -w 도스콘솔창제외 윈도우창만표시 에러 확인시는 끈다.
--onefile 실행에필요한 lib,dll 파일들을 하나의 exe실행파일에 묶어라.
하위 디렉토리에서 이미지나 음악파일을 읽어오는 경우는
py안에서 경로를 지정하고 하위디렉토리 resources는 그대로 복사해주면 된다.
변환명령으로 Scripts폴더에서 실행확인까지 완벽하다면
배포할 파일과 하위디렉토리를 같이 묶어주면 된다........
차후 복잡 해질수있으니 기본만 잡고 가는 수준으로...
........
libpng warning: iCCP: known incorrect sRGB profile
이 메세지 때문에 신경이 쓰인다.. 이는 png파일이 깨져서 나오는 증상이다.
실행엔 문제없지만 변환작업시 문제가 발생할수 있다.
1. pngcrash 설치
http://pmt.sourceforge.net/pngcrush/
png파일등을 압축해서 작게도 만들지만 깨진 파일도 수정해준다.
실행파일로 받는다.
https://sourceforge.net/projects/pmt/files/pngcrush-executables/1.8.11/
2. 작업시 뒤섞이는 문제를 방지하기 위해 작업할 디렉토리 하나 만들어서
pngcrush.exe 를 copy 하고 수정할 png 파일을 가져다가 논 다음
아래 명령을 실행한다......배치파일로 써도 된다.....
pngcrush.exe -m 113 -m 121 -m 124 -d "PNG Crushed" *.png
수치는 수정전 파일크기에서 적당히..
3. PNG Crushed 디렉토리가 만들어지고 수정된파일들이 그안에 생성된다.
처리가 완료된 png들로 빌드작업하라...
이참에 Python를 유연하게 구사하기위해 Path를 걸어놓자.
win7에서 Python34 path 걸어두기
win10설정은 쉽게되지만 win7은 한줄로 작성되 있다...
제어판-고급시스템설정- 고급-환경변수-시스템변수-Path 를클릭하면
변수값에 C:\ProgramData\~......... 라고 길게나온다.
맨마지막에 ;C:\python34 라고 추가해주면 된다. (;구분표시)
위설명은 예제파일을 기준으로 설명했으며
자료는 공개파일 퍼온 자료를 가지고 수정과 1차 검증을 거쳤다.
원문
.py
① > ② > ③
실행.
소스파일-수정버전
game-b10.py
아래는 pyinstaller로 작업한 컴파일을 Dropbox에 올린자료임.
바탕화면에 풀어 실행확인..본인의 작업한 내용과 비교해 보세요.
깨진 이미지는 복구수정 하였으니 소스파일을 컴파일할땐 resources 폴더를 복사해서 사용하세요.
https://www.dropbox.com/s/cacm4h006bjm6is/pyinstaller-dist.zip?dl=0
game-b10 최종파일은 python에선 승.패 표시가 명확하지만
컴파일 버전에선 완벽하지 않다...
exit확인을 메뉴박스로 바꿔서 다듬어야 할듯.........오늘은 여기까지...........
무엇이든 도전하라 도전하는자에게 모든길이 열려있다.................
[출처] Python 3.4 Pyinstaller py exe컴파일....... 작성자 xzzpark 2017.04.25