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实现linux服务器批量修改密码并生成execl
Apr 22 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
django输出html内容的实例
May 27 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
浅谈python中get pass用法
Mar 19 Python
python3.6根据m3u8下载mp4视频
Jun 17 Python
使用python远程操作linux过程解析
Dec 04 Python
python将unicode和str互相转化的实现
May 11 Python
python开发一个解析protobuf文件的简单编译器
Nov 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
如何给phpadmin一个保护
2006/10/09 PHP
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
js脚本实现数据去重
2014/11/27 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
详解AngularJS 过滤器的使用
2018/06/02 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
Python中的推导式使用详解
2015/06/03 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
python re的findall和finditer的区别详解
2020/11/15 Python
关于python中remove的一些坑小结
2021/01/04 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
HEMA法国:荷兰原创设计
2019/02/21 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
介绍一下Ruby的多线程处理
2013/02/01 面试题
运动会开幕式解说词
2014/02/05 职场文书
部队万能检讨书
2014/02/20 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
学校三节实施方案
2014/06/09 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
尼克胡哲观后感
2015/06/08 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
Redis集群的关闭与重启操作
2021/07/07 Redis