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 相关文章推荐
python基于Tkinter库实现简单文本编辑器实例
May 05 Python
python简单文本处理的方法
Jul 10 Python
Python算法应用实战之队列详解
Feb 04 Python
python如何实现int函数的方法示例
Feb 19 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
python enumerate内置函数用法总结
Jan 07 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
Python下载的11种姿势(小结)
Nov 18 Python
python 实现控制鼠标键盘
Nov 27 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 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 URL验证正则表达式
2011/07/19 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
js模拟微博发布消息
2017/02/23 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
Python关于反射的实例代码分享
2020/02/20 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
应届生服务员求职信
2013/10/31 职场文书
经贸日语专业个人求职信
2013/12/13 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
大学校务公开实施方案
2014/03/31 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
大学生个人总结范文
2015/02/15 职场文书
电影红河谷观后感
2015/06/11 职场文书
运动会新闻报道稿
2015/07/22 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
浅谈Vue的computed计算属性
2022/03/21 Vue.js