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函数帮助查询小工具
Mar 13 Python
Python的ORM框架SQLObject入门实例
Apr 28 Python
使用C语言扩展Python程序的简单入门指引
Apr 14 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
Python之NumPy(axis=0 与axis=1)区分详解
May 27 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
如何利用python给图片添加半透明水印
Sep 06 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
三个python爬虫项目实例代码
Dec 28 Python
基于Python爬取京东双十一商品价格曲线
Oct 23 Python
Python+logging输出到屏幕将log日志写入文件
Nov 11 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
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
怎么清空javascript数组
2013/05/11 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python通过cv2读取多个USB摄像头
2019/08/28 Python
Python字典底层实现原理详解
2019/12/18 Python
python3.7添加dlib模块的方法
2020/07/01 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
python 制作本地应用搜索工具
2021/02/27 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
四年的个人工作自我评价
2013/12/10 职场文书
小学中秋节活动方案
2014/02/06 职场文书
档案信息化建设方案
2014/05/16 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
500字小学生检讨书
2015/02/19 职场文书
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js