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 07 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Fabric 应用案例
Aug 28 Python
python 获取页面表格数据存放到csv中的方法
Dec 26 Python
python协程之动态添加任务的方法
Feb 19 Python
Python何时应该使用Lambda函数
Jul 02 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
Python安装selenium包详细过程
Jul 23 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 Python
详解python的内存分配机制
May 10 Python
python实现自定义日志的具体方法
May 28 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
ThinkPHP中redirect用法分析
2014/12/05 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
python网络编程学习笔记(四):域名系统
2014/06/09 Python
对Python中plt的画图函数详解
2018/11/07 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
教师专业理论水平的自我评价分享
2013/11/09 职场文书
最新创业融资计划书
2014/01/19 职场文书
党员领导干部承诺书
2014/05/28 职场文书
新闻编辑求职信
2014/07/13 职场文书
法人代表证明书格式
2014/10/01 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
优秀英文求职信范文
2015/03/19 职场文书
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python