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制作简单的网页爬虫
Nov 22 Python
python算法表示概念扫盲教程
Apr 13 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
Django框架orM与自定义SQL语句混合事务控制操作
Jun 27 Python
python 模拟银行转账功能过程详解
Aug 06 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
python如何基于redis实现ip代理池
Jan 17 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
Python更换pip源方法过程解析
May 19 Python
Python学习之路安装pycharm的教程详解
Jun 17 Python
Python3如何在服务器打印资产信息
Aug 27 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 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入门源程序
2006/10/09 PHP
实用函数5
2007/11/08 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
urllib2自定义opener详解
2014/02/07 Python
Python抽象类的新写法
2015/06/18 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
使用Python更换外网IP的方法
2018/07/09 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
Python画图高斯分布的示例
2019/07/10 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
工业学校毕业生自荐书
2014/01/03 职场文书
销售主管竞聘书
2014/03/31 职场文书
大学计划书范文800字
2014/08/14 职场文书
义诊活动通知
2015/04/24 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
初中历史教学反思
2016/02/19 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers