17.5 添加额外的文件
来源:互联网 发布:hec ras 软件下载 编辑:程序博客网 时间:2024/05/18 20:13
因为很多程序除了执行文件之外,还需要一些配置文件,数据文件,图片文件等等,所以需要把这些文件也自动地拷贝到指定有目录里,才可以在别人的电脑里运行起来,那么就需要在安装脚本里添加这些内容,并进行打包,如下:
#python 3.4
from distutils.core import setup
import glob
import py2exe
setup(console=['hello.py'],
data_files=[('icons', ['CloseScreen.ico']),
]
)
在这个安装脚本里,使用了关键字data_files,这个关键字使用一个元组表示一个目标目录和需要拷贝的文件,像上面的例子:
('icons', ['CloseScreen.ico'])
这个元组第一个元素icons是目标目录的名称,也就是在dist目录里建立的子目录,第二个元素是一个字典['CloseScreen.ico'],表示所有需要拷贝的文件路径,在字典里可以是多个文件。
如果想建立多个目录,可以在data_files的字典里包括多元组即可,每一个元组是一个目录。如果想自动从一个目录里拷贝很多文件,一个一个地添加到脚本里,就比较麻烦,可以使用下面的脚本的方式,可以把一个目录里所有文件添加进去:
1 import os
2 from distutils.core import setup
3 import py2exe
4
5 Mydata_files = []
6 for files in os.listdir('C:/path/to/image/directory/'):
7 f1 = 'C:/path/to/image/directory/' + files
8 if os.path.isfile(f1): # skip directories
9 f2 = 'images', [f1]
10 Mydata_files.append(f2)
11
12 setup(
13 console=['trypyglet.py.py'],
14 data_files = Mydata_files,
15 options={
16 "py2exe":{
17 "unbuffered": True,
18 "optimize": 2,
19 "excludes": ["email"]
20 }
21 }
22 )
17.6 py2exe扩展的参数
py2exe扩展原来一些参数,下面定义了一些参数告诉py2exe怎么样创建应用程序的类型,如下:
关键字
描述
console
把脚本转换为console应用程序。
windows
把脚本转换为GUI应用程序。
service
把脚本转换为Win32服务类型。
con_server
把脚本转换为COM服务类型。
ctypes_com_server
把脚本转换为COM服务类型。
zipfile
指定共享库的名称,默认是library.zip。
options
配置字典{‘py2exe’: {‘opt1’: val1, ‘opt2’: val2, ...}}
在最后一项的py2exe选项参数如下列表:
键
可选的值
unbuffered
如果设置为true,不要缓存stdout和stderr输出,因为有时需要立即查看到输出的内容。
optimize
优化的级别,0表示不优化仅生成.pyc文件;1表示一般优化,相当于python -O;2表示极限优化,相当于python -OO。
includes
列表包括的模块名称。
packages
列表包括在subpackages目录的包模块。
ignores
那些模块如果没有发现,就可以忽略。
excludes
那些模块不需要包括的。
dll_excludes
所有需要执行的dll的名称。
dist_dir
目标的目录名称。
typelibs
列表需要包括编译生成的类型库。
compressed
是否创建一个zipfile压缩文件。
xref
是否创建一个模块的交叉引用。
bundle_files
绑定dlls到zip文件或者exe文件里,3表示不绑定,2绑定所有文件除了Python解释器,1绑定所有文件,包括Python解释器。
skip_archive
是否不要把Python字节码文件放到压缩包里,直接放到文件系统下。
ascii
是否自动包括编码模块。
custom-boot-script
设置建立运行环境之前运行的脚本文件。
下面是一个使用参数的例子:
setup(
windows=['trypyglet.py'],
options={
"py2exe":{
"unbuffered": True,
"optimize": 2,
"excludes": ["email"]
}
}
)
你可以通过传递一个service关键字参数给setup函数来建造Windows NT services
,这个service参数的值必须是一个Python模块名(包含一service类)的列表。
示例如下:
# mysetup.py
from distutils.core import setup
import py2exe
setup(service=["MyService"])
所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。
蔡军生 QQ: 9073204 深圳
1. 跟老菜鸟学python
- 17.5 添加额外的文件
- Android jni开发 eclipse 删除额外添加的.so文件
- Android jni开发 eclipse 删除额外添加的.so文件
- keyBoard添加额外的按钮
- 为对象添加额外的属性
- Jetty中添加额外的jar包
- Bootstrap3 表单-添加额外的图标
- eclipse中添加额外的jar包
- IntelliJ IDEA添加额外的jar包
- TF添加额外坐标系
- wpf combobox数据绑定并添加一个额外的选项
- quick-cocos2dx在xcode下如何添加额外的文件夹
- MinGW环境变量设置、CodeBlock添加额外的库
- ExtraViewWrapperAdapter--添加额外头部尾部功能的装饰adapter
- 为自己的自定义View添加额外属性
- 添加额外的路径到Android系统中
- DataTable-输出Excel添加额外行的实现
- 向filter过滤器中的request对象添加额外的参数
- Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建
- 查找电脑上某个端口占用,并将其删除
- Android Studio No tab content FrameLayout found for id 问题修复
- TCP连接的建立与终止,三次握手和四次握手,以及在socket系列函数中的体现
- 移动联通基站定位API以及电信基站定位API
- 17.5 添加额外的文件
- 移动设备开发的那些meta
- 笔记 style.xml风格记录
- 多个pdf怎么转换成word文档最简单
- HDU5491 The Next
- js样式
- lintcode longest-increasing-continuous-subsequence 最长上升连续子序列
- 新博客
- jQuery中获取点击事件的元素及元素的id属性