py2exe笔记
2015-06-19 16:15
169 查看
简介
py2exe就是将python代码打包成windows可执行程序的一个python开源项目。
官方网站:http://www.py2exe.org/
下载地址:http://sourceforge.net/projects/py2exe/files/
经典代码
代码1:setup.py (清爽简约模式----生成未打包的windows console)
执行方式:python setup.py
============================================================
from distutils.core import setup
import py2exe
import sys
# In fact, the effect equals call "python setup_example.py py2exe".
sys.argv.append('py2exe')
setup(console=["yourcode.py"])
============================================================
代码2:setup.py (雍容华贵模式----打包成单一的windows console)
执行方式:python setup.py py2exe
============================================================
from distutils.core import setup
import py2exe
includes = ["encodings", "encodings.*"]
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes
}
}
Mydata_files = [('', ['config.ini','file2.txt','file3.txt']),('image', ['pic.jpg'])]
setup(
version = "1.0",
description = "Yahoo Tool",
name = "Nonove",
options = options,
zipfile=None,
data_files = Mydata_files,
console=[{"script": "Yourcode.py", "icon_resources": [(1, "your.ico")] }]
)
============================================================
代码注释
[1] options中的bundle_files:
值为1表示pyd和dll文件会被打包到exe文件中,且不能从文件系统中加载python模块;
值为2表示pyd和dll文件会被打包到exe文件中,但是 可以从文件系统中加载python模块;
值为3表示不打包;
[2] setup中的zipfile:
当zipfile=None时,表示不生成library.zip,也可以自己设置zip文件名称
[3] setup中和console对应的还有:
console表示windows控制台程序;
windows表示windows图形化程序;
service表示windows服务,语法:setup(service=["MyService"])
com_server表示为COM servers,语法:setup(com_server=["win32com.server.interp"])
[4] setup中的data_files:
表示包含的各种文件,代码中表示包含3个数据文件在根目录,并在image子目录下包含一个图片文件。更详细见官网。
常见的问题
[1] 打包后的exe不可执行,是由于缺少两个必要的文件,msvcr90.dll和Microsoft.VC90.CRT.manifest,其中msvcr90.dll的版本为9.0.21022.8,详细解释见官网,
解决方法:将上述两个文件copy进dist文件夹,或者见官网的解决方式(在打包前,将这两个文件作为资源,直接复制到dist文件夹下)。
[2] 打包后的exe报错,说缺少文件,这个问题的主要原因是python代码import文件时,使用了某些模块提供的所谓lazy import,使得打包时,py2exe找不到类库真正的路径
解决方法:重新import类库文件的真实路径,然后重新打包,问题解决。
[3] 需要打包一些系统dll,有时候,我们想要将一些dll打包进exe里面,就需要修改py2exe的默认配置,详见官网。
[4] 关于dist文件夹下的文件都是干什么用的,见这里。w9xpopen.exe这个是为了适应win9x平台。
py2exe就是将python代码打包成windows可执行程序的一个python开源项目。
官方网站:http://www.py2exe.org/
下载地址:http://sourceforge.net/projects/py2exe/files/
经典代码
代码1:setup.py (清爽简约模式----生成未打包的windows console)
执行方式:python setup.py
============================================================
from distutils.core import setup
import py2exe
import sys
# In fact, the effect equals call "python setup_example.py py2exe".
sys.argv.append('py2exe')
setup(console=["yourcode.py"])
============================================================
代码2:setup.py (雍容华贵模式----打包成单一的windows console)
执行方式:python setup.py py2exe
============================================================
from distutils.core import setup
import py2exe
includes = ["encodings", "encodings.*"]
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes
}
}
Mydata_files = [('', ['config.ini','file2.txt','file3.txt']),('image', ['pic.jpg'])]
setup(
version = "1.0",
description = "Yahoo Tool",
name = "Nonove",
options = options,
zipfile=None,
data_files = Mydata_files,
console=[{"script": "Yourcode.py", "icon_resources": [(1, "your.ico")] }]
)
============================================================
代码注释
[1] options中的bundle_files:
值为1表示pyd和dll文件会被打包到exe文件中,且不能从文件系统中加载python模块;
值为2表示pyd和dll文件会被打包到exe文件中,但是 可以从文件系统中加载python模块;
值为3表示不打包;
[2] setup中的zipfile:
当zipfile=None时,表示不生成library.zip,也可以自己设置zip文件名称
[3] setup中和console对应的还有:
console表示windows控制台程序;
windows表示windows图形化程序;
service表示windows服务,语法:setup(service=["MyService"])
com_server表示为COM servers,语法:setup(com_server=["win32com.server.interp"])
[4] setup中的data_files:
表示包含的各种文件,代码中表示包含3个数据文件在根目录,并在image子目录下包含一个图片文件。更详细见官网。
常见的问题
[1] 打包后的exe不可执行,是由于缺少两个必要的文件,msvcr90.dll和Microsoft.VC90.CRT.manifest,其中msvcr90.dll的版本为9.0.21022.8,详细解释见官网,
解决方法:将上述两个文件copy进dist文件夹,或者见官网的解决方式(在打包前,将这两个文件作为资源,直接复制到dist文件夹下)。
[2] 打包后的exe报错,说缺少文件,这个问题的主要原因是python代码import文件时,使用了某些模块提供的所谓lazy import,使得打包时,py2exe找不到类库真正的路径
解决方法:重新import类库文件的真实路径,然后重新打包,问题解决。
[3] 需要打包一些系统dll,有时候,我们想要将一些dll打包进exe里面,就需要修改py2exe的默认配置,详见官网。
[4] 关于dist文件夹下的文件都是干什么用的,见这里。w9xpopen.exe这个是为了适应win9x平台。
相关文章推荐
- mongodb 在包含or条件查询的时候,尽量不使用排序
- 分治算法 最接近点对(一维)
- 毕业课题 ---opencv hog+svm bat批处理例子
- springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例
- 产品发布会(用户佐证)
- Zookeeper Canary
- 三目运算及数据类型转换经典案例
- 大牛前端薪酬无 上封顶
- 朴素贝叶斯分类法 Naive Bayes ---R
- 转载_蓝牙物理链路类型:SCO和ACL链路
- POJ 1083 Moving Tables
- termios结构体相关的函数
- Git 分布式版本控制系统(一)---git for linux简介和安装
- php简单计算页面加载时间的方法
- Oracle 10g/11g 导入导出整理
- java数组随机乱序且乱序后不在其原来的位置上(代码片段)
- 通过修改manifest文件来解决Vista/Win7/Win8下应用程序兼容性问题
- android开发中常见错误汇总
- 关于网络连接方式的总结(HostOnly,NAT....)
- Google Analytics之增强型电子商务报告