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 24 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
python构建深度神经网络(续)
Mar 10 Python
python实现录音小程序
Oct 26 Python
python通过tcp发送xml报文的方法
Dec 28 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
Pytorch evaluation每次运行结果不同的解决
Jan 02 Python
tensorboard显示空白的解决
Feb 15 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 Python
Python如何定义接口和抽象类
Jul 28 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
php三元运算符知识汇总
2015/07/02 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
js类的静态属性和实例属性的理解
2009/10/01 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
理解 JavaScript Scoping & Hoisting(二)
2015/11/18 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
Django 前后台的数据传递的方法
2017/08/08 Python
TensorFlow的权值更新方法
2018/06/14 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
python实现大文本文件分割
2019/07/22 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
国际商务英语专业求职信
2014/07/08 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书