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中map、any、all函数用法分析
Apr 21 Python
Python3.x版本中新的字符串格式化方法
Apr 24 Python
Python类定义和类继承详解
May 08 Python
如何使用VSCode愉快的写Python于调试配置步骤
Apr 06 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 Python
使用Python项目生成所有依赖包的清单方式
Jul 13 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
python tkinter实现连连看游戏
Nov 16 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多任务程序实例解析
2014/07/19 PHP
PHP反射机制用法实例
2014/08/28 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
深入浅析php json 格式控制
2015/12/24 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
脚本之家贴图转换+转贴工具用到的js代码超级推荐
2007/04/05 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
分析javascript原型及原型链
2018/03/18 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
Python的函数的一些高阶特性
2015/04/27 Python
Python中str.format()详解
2017/03/12 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
解决Python使用列表副本的问题
2019/12/19 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
python中列表的含义及用法
2020/05/26 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
生态养殖创业计划书
2014/05/06 职场文书
现场活动策划方案
2014/08/22 职场文书
普通党员对照检查材料
2014/08/28 职场文书
补充协议书
2015/01/28 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
教你怎么用Python生成九宫格照片
2021/05/20 Python
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏