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中的面向对象编程详解(下)
Apr 13 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
Appium+python自动化怎么查看程序所占端口号和IP
Jun 14 Python
浅谈Pytorch中的torch.gather函数的含义
Aug 18 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
Python计算信息熵实例
Jun 18 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
python破解同事的压缩包密码
Oct 14 Python
python中round函数保留两位小数的方法
Dec 04 Python
举例讲解Python装饰器
Dec 24 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
零基础php编程好学吗
2019/10/11 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
innerText和textContent对比及使用介绍
2013/02/27 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
python实现列表的排序方法分享
2019/07/01 Python
python 实现多维数组转向量
2019/11/30 Python
利用Python计算KS的实例详解
2020/03/03 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
高一学生期末评语
2014/04/25 职场文书
2015年少先队活动总结
2015/03/25 职场文书
教务处教学工作总结
2015/08/10 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
Golang之sync.Pool使用详解
2021/05/06 Golang
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫