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 相关文章推荐
写了个监控nginx进程的Python脚本
May 10 Python
python删除列表中重复记录的方法
Apr 28 Python
深入解读Python解析XML的几种方式
Feb 16 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
Dec 12 Python
redis之django-redis的简单缓存使用
Jun 07 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
python实现AES加密与解密
Mar 28 Python
python中的 zip函数详解及用法举例
Feb 16 Python
使用python检查yaml配置文件是否符合要求
Apr 09 Python
django创建超级用户时指定添加其它字段方式
May 14 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
python中not、and和or的优先级与详细用法介绍
Nov 03 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编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
PHP多态代码实例
2015/06/26 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
json的前台操作和后台操作实现代码
2012/01/20 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
Anaconda入门使用总结
2018/04/05 Python
使用Python更换外网IP的方法
2018/07/09 Python
详解Python sys.argv使用方法
2019/05/10 Python
python logging模块的使用总结
2019/07/09 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
python3中确保枚举值代码分析
2020/12/02 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
护理自荐信范文
2013/10/05 职场文书
办公室驾驶员岗位职责
2013/11/15 职场文书
计算机通信工程专业毕业生推荐信
2013/12/24 职场文书
文艺演出策划方案
2014/06/07 职场文书
集体生日活动方案
2014/08/18 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
解除租赁合同协议书
2016/03/21 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers