Windows下用py2exe将Python程序打包成exe程序的教程

yipeiwu_com7年前Python基础

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+pandas生成指定日期和重采样的方法

python 日期的范围、频率、重采样以及频率转换 pandas有一整套的标准时间序列频率以及用于重采样、频率推断、生成固定频率日期范围的工具。 生成指定日期范围的范围 pandas.d...

关于Python核心框架tornado的异步协程的2种方法详解

关于Python核心框架tornado的异步协程的2种方法详解

什么是异步? 含义 :双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位 现象:没有共同的时钟,...

python基于右递归解决八皇后问题的方法

本文实例讲述了python基于右递归解决八皇后问题的方法。分享给大家供大家参考。具体分析如下: 凡是线性回溯都可以归结为右递归的形式,也即是二叉树,因此对于只要求一个解的问题,采用右递归...

python实现从字符串中找出字符1的位置以及个数的方法

本文实例主要实现给出任意字符串,获取字符串中某字符的位置以及出现的总次数。 实现该功能代码的时候可以使用函数enumerate来将字符串分离成位置和字符,然后进行比较即可。 具体实现代码...

pygame实现五子棋游戏

pygame实现五子棋游戏

本文实例为大家分享了pygame五子棋游戏的具体代码,供大家参考,具体内容如下 1.设置棋盘 五子棋标准棋盘是15x15的,如果我们每个格子的大小是40x40的话,棋盘应该是40x(15...