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 相关文章推荐
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Python实现分段线性插值
Dec 17 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
python 实现批量图片识别并翻译
Nov 02 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python 写一个文件分发小程序
Dec 05 Python
Python爬虫入门教程01之爬取豆瓣Top电影
Jan 24 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计算上一个月的今天
2013/05/23 PHP
php中异常处理方法小结
2015/01/09 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
零基础php编程好学吗
2019/10/11 PHP
重定向实现代码
2006/11/20 Javascript
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
python连接mongodb密码认证实例
2018/10/16 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Python调用Redis的示例代码
2020/11/24 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
社区安全检查制度
2014/02/03 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
学习张林森心得体会
2014/09/10 职场文书
酒店员工手册范本
2015/05/14 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
一文解答什么是MySQL的回表
2022/08/05 MySQL