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之从if开始语句的征程
Sep 14 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
深入解读Python解析XML的几种方式
Feb 16 Python
Python计算字符宽度的方法
Jun 14 Python
Python 通过URL打开图片实例详解
Jun 01 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
python3连接MySQL数据库实例详解
May 24 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
Python-openCV读RGB通道图实例
Jan 17 Python
关于python 跨域处理方式详解
Mar 28 Python
Python过滤序列元素的方法
Jul 31 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 无法载入mysql扩展
2010/03/12 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
浅谈javascript中的instanceof和typeof
2015/02/27 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
python实现验证码识别功能
2018/06/07 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
python 装饰器的使用示例
2020/10/10 Python
销售心得体会
2014/01/02 职场文书
运动会四百米广播稿
2014/01/19 职场文书
小露珠教学反思
2014/04/30 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
计划生育责任书
2015/05/09 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python
python数字类型和占位符详情
2022/03/13 Python
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技