作者etime (etime)
看板Python
標題[範例] py2exe
時間Wed Jul 7 13:44:55 2010
py2exe
把你的Python打包起來丟到沒有安裝Python環境的電腦執行
要打包的時候在Command下執行 Python Setup.py py2exe
注意路徑是否正確,你要打包的.py檔案、附加的檔案、Icon檔等等都要在同個路徑下
範例1:基本的Setup.py
from distutils.core import setup
import py2exe
setup(console=["hello.py"])
hello.py是你要打包的檔名,可以改成你的xxx.py
如果你打包的是GUI,console要改成window,可是我目前沒用過就是
範例2:使用指定的Icon圖示和把特定要的檔案包進去
from distutils.core import setup
import py2exe
setup(
console = [{"script": 'hello.py',
要帶一些東西必需要加script
"icon_resources": [(1, "Online-icon.ico")],}],
設定你執行檔的Icon
data_files=[('.',["a.xxx","b.xxx","c.xxx"])],
你要附帶的檔案,上面的意思是放在該目錄下,然後把a.xxx、b.xxx、c.xxx也帶進去
若你要指定新增目錄的話,可以改成這樣
data_files=[('afolder',["a.xxx"]),('bfolder',["b.xxx"]),('cfolder',["c.xxx"])]
這樣會把三個檔案丟進對應的folder
)
看了些文章說py2exe在包Python2.6會有一些問題,導致包出來的東西無法在別的windows
下使用,我目前用的不多,所以暫時沒有遇到這問題...
以下這個是把所有檔案都包進去.exe,附加檔案則不會包進去
from distutils.core import setup
import py2exe
includes = ["encodings", "encodings.*"]
#include encodings.
options = {"py2exe":
{
"compressed": 1,
"optimize": 2,
"includes": includes,
"bundle_files": 1
}
}
setup(
console = [{"script": 'hello.py',
#python name.
"icon_resources": [(1, "Online-icon.ico")],}],
#use custom icon.
data_files=[('.',["a.xxx","b.xxx","c.xxx"])],
#add files.
version = "0.0.0.3",
#version number.
options = options,
#use options config.
zipfile=None,
#package library.zip to exe.
)
※ 編輯: etime 來自: 114.45.137.95 (07/07 22:08)
推 cobrasgo:哇,有這種東西啊 07/08 18:56
推 aitjcize:[py2exe在包Python2.6會有一些問題...]這句,個人經驗是 07/10 23:47
→ aitjcize:在Win7下,他會copy到一些win7-only的dll,所以變成在xp 07/10 23:48
→ aitjcize:上不能跑,只要刪掉就可以了 07/10 23:48
→ ykjiang:我 pyinstaller 用比較順手 07/13 19:44
→ etime:原本我也是用pyinstall,可是後來還是覺得py2exe比較好用.. 07/13 19:56
→ ironmanstock:是不是只要copy dist 的目錄到另一台電腦就夠了 07/18 02:54
推 Laputaet3:是的 07/19 18:17