作者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)
1F:推 cobrasgo:哇,有这种东西啊 07/08 18:56
2F:推 aitjcize:[py2exe在包Python2.6会有一些问题...]这句,个人经验是 07/10 23:47
3F:→ aitjcize:在Win7下,他会copy到一些win7-only的dll,所以变成在xp 07/10 23:48
4F:→ aitjcize:上不能跑,只要删掉就可以了 07/10 23:48
5F:→ ykjiang:我 pyinstaller 用比较顺手 07/13 19:44
6F:→ etime:原本我也是用pyinstall,可是後来还是觉得py2exe比较好用.. 07/13 19:56
7F:→ ironmanstock:是不是只要copy dist 的目录到另一台电脑就够了 07/18 02:54
8F:推 Laputaet3:是的 07/19 18:17