Python으로 프로그램 짜면 전부 다 python을 실행한 상태에서 진행을 해야 하는 불편함이 있다. Python을 알아야 한다는 불편함
단독으로 실행하게 만들고 싶은 마음이 굴뚝 같다. 물론 나만 쓰는 프로그램이 아니라면 더욱 더 그렇겠죠?
그래서 찾아본 결과 Freeze, cx_Freeze, bb-freeze 등 여러개가 있다. 이 중에 가장 좋은 걸 해본 결과 Qt를 이용하지 않는다면 Freeze를 그냥 이용하고, Qt를 단독 실행으로 하고 싶다면 어쩔 수 없이 cx_Freeze를 사용해야 했다. Freeze로 Qt4도 지원하면 더욱 더 좋겠지만, 자료 검색 능력이 딸려 더 이상 진행하지 못했다.
1) Freeze는 python 소스 디렉토리에 Tools/Freeze라고 있으므로 사용법은 아래와 같다.
./Python-2.7.2/Tools/freeze/freeze.py -o dist hello.py |
이러면 dist 디렉토리가 생기는데, make 치면 단독 파일 생성된다.
2) bb-freeze는 이전에 포스팅한 자료로 대신함
3) cx_Freeze는 일단 설치부터 해야한다.
첨부파일 받아서 README.txt 파일 읽어보면 설치방법은 아래와 같다
python MakeFrozenBases.py python FreezePython.py --no-copy-deps FreezePython.py |
이거 두개 실행하면 FreezePython 이라는 실행파일이 생성된다.
그리고 실행파일 만들려면
이렇게 하면 dist 디렉토리에 실행파일이 만들어진다.
./FreezePython --install-dir dist helloworld.py |
그리고 PyQt4에서는 sip 모듈을 추가로 include 해야 된답니다. 아래와 같이...
./FreezePython --install-dir dist --include-modules sip helloworld.py |
테스트에 사용한 python hello world
Example 1 : helloworld.py
print "hello world!!!\n" |
Example 2 : helloword.py PyQt4 version
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * app = QApplication(sys.argv) button = QPushButton("Hello World", None) button.show() app.exec_() |
주의!) 마지막으로 cx_Freeze는 .so 인 라이브러리가 같이 생성되고 없으면 실행이 안됩니다. Freeze는 단독으로 그냥 실행됩니다. ㅎ
이거 하느라 5시간 걸렸슴다... 이제 프로그램 짜보러 추울발~!!!!
다음은 윈도우에서 하는 방법 포스트 예정입니다. ㅋㅋㅋㅋ
'Python' 카테고리의 다른 글
Python Class @ Google (0) | 2012.02.03 |
---|---|
python coding - Fsdb dump script (0) | 2012.02.02 |
Ubuntu에서 python 2.7 설치 및 bb freeze 설치 및 사용법 (0) | 2012.02.02 |
Python Linux Binary 파일 만들기 : Freeze 편 (0) | 2012.02.02 |
Python Qt4 on Ubuntu (0) | 2012.01.16 |