2010年1月12日 星期二

Ubuntu 下使用 pyinstaller

使用 python 寫程式的爽度難以形容
但在生成執行檔的這部分就會讓人卻步不前了吧......
畢竟不是每個人的電腦裡都有安裝 python 的開發環境
所以流通性會受到阻礙
不然只要有幾十或幾百 KB 的源碼就可以跑了

首先先去官網下載 pyinstaller
目前最新的穩定版本為 1.3 版
然後根據官網的描述先安裝一些必要的東西
apt-get install build-essential python-dev
接下來開啟終端機並進入到 pyinstaller 目錄下的 source/linux 目錄
接著下指令
python Make.py #[-n|-e]
跑完之後,再下
make
成功的話會看到兩個檔案
分別是
support/load/run
support/load/run_d
可是我之前卻卡在這關
在下 make 指令之後
終端機跑了一下最後顯示錯誤訊息
connot find -lz
然後上網查了一下
原來是缺了 zlib 庫
下了 apt-cache search zlib 卻找不到任何東西
應該是 Ubuntu 提供的源裡沒有 zlib 庫
於是就跑到 zlib 官網去下載了最新的版本
目前是 zlib1.2.3
解壓縮了之後
到 zlib 的目錄下下指令
./configure
make
sudo make install
就可以完成安裝
接著就回到 pyinstaller 的目錄下
重新執行 make
最後雖然還是有些警告出現
不過卻成功的跑出 run,run_d 這兩個檔案 : )
然後再執行 pyinstaller 目錄底下的 Configure.py
會將一些資訊寫入 config.dat
這樣前置工作就算是大功告成
之後就不用再做了
除非你有改過一些相關的設定

然後就可以開始測試
我先寫了一個簡單的程式
#!/usr/bin/env python
print"Hello!"
存成 test.py
放到新建的 test 目錄下
然後開啟終端機
並移到 test 目錄下
然後下指令
python (pyinstaller dir)/Makespec.py --onefile test.py
這會生出一個 test.spec 的檔案
其中 --onefile 會幫你把程式編成單一檔案,可以不用輸入
其他還有一些指令,可以到 pyinstaller 官網去查看
然後再下
python (pyinstaller dir)/Build.py test.spec
就可以建立出一個執行檔
再來下指令
./test
就會跑出 Hello! 的文字
不過就為了跑出這麼一行
執行檔的大小卻有 9MB 之多
雖然可以再用 UPX 壓縮
不過也不會小到哪裡去......
我想這點會令很多人苦惱吧
但不管怎麼說
總是把執行檔編出來了 : )

沒有留言: