Windows下用py2exe将Python程序打包成exe程序的教程


Posted in Python onApril 08, 2015

py2exe在sourceforge 的下载只支持到2.7。

针对python3.0+的版本,需要自己编译。
1.下载源码

svn checkout svn://svn.code.sf.net/p/py2exe/svn/trunk py2exe-svn
2.编译环境

这里使用的是vs2014.
3.安装

进入py2exe-3

python setup.py install

这里会进行编译、安装。

此外,python默认使用的是vs9,针对vs2014,需要改下文件:

Lib\distutils\msvc9compiler.py

寻找:

VERSION = get_build_version()

在下面增加:

VERSION = 11.0

如果出现错误:

Failed to load and parse the manifest. The system cannot find the file specified.
error: command 'mt.exe' failed with exit status 31

解决办法:由于vs2010后的link.exe的参数稍微有些改变,所以在link的时候没有生成manifest文件,自然mt.exe找不到这个文件。只需要在msvc9compiler.py里面搜索一下MANIFESTFILE,然后在他上面加一行 ld_args.append('/MANIFEST'),保存就OK了。(python3.4好像没有这个问题,2.7存在)
4.setup.py

setup.py可以参考官网,其中的参数--bundle-files,需要特别说下,想打成一个整包要设成0.

变化可以参考:http://sourceforge.net/p/py2exe/svn/HEAD/tree/trunk/py2exe-3/
最后附上setup.py

from distutils.core import setup
import py2exe
import sys,os
 
if sys.version_info.major >= 3.0:
  opt_bundle_files = 0
else:
  opt_bundle_files = 1
includes = ["PyQt4.QtCore","PyQt4.QtGui","sip"]
options = {"py2exe":
     { "compressed": 1,
      "optimize": 2,
      "includes": includes,
      "bundle_files": opt_bundle_files,
     }
   }
setup(
  version = "0.1.0",
  description = "test_add",
  options = options,
  zipfile=None,
  console=[{"script": "test_add.py", "icon_resources": [(1, "py.ico")] }],
  #windows=[{"script": "test_add.py", "icon_resources": [(1, "py.ico")] }],
)
Python 相关文章推荐
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python中类的创建和实例化操作示例
Feb 27 Python
python实现的自动发送消息功能详解
Aug 15 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
python - timeit 时间模块
Apr 06 Python
Python列表的索引与切片
Apr 07 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
Apr 13 Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 #Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 #Python
在Python中使用M2Crypto模块实现AES加密的教程
Apr 08 #Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
Apr 08 #Python
Python打印scrapy蜘蛛抓取树结构的方法
Apr 08 #Python
使用IPython来操作Docker容器的入门指引
Apr 08 #Python
仅用50行Python代码实现一个简单的代理服务器
Apr 08 #Python
You might like
php 采集书并合成txt格式的实现代码
2009/03/01 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
JAVASCRIPT  THIS详解 面向对象
2009/03/25 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
js实现双色球效果
2020/08/02 Javascript
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
python获取文件真实链接的方法,针对于302返回码
2018/05/14 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
用Python解数独的方法示例
2019/10/24 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
通息工程毕业生自荐信
2013/10/16 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
2014年少先队工作总结
2014/12/03 职场文书
法务专员岗位职责
2015/02/14 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
2019年最新借条范本!
2019/07/08 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python