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

 更新时间:2015年04月08日 10:32:38   投稿:goldensun  
这篇文章主要介绍了Windows下用py2exe将Python程序打包成exe程序的教程,文中主要针对Python3.x版本进行说明,需要的朋友可以参考下

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中GIL的原理及用法总结

    python中GIL的原理及用法总结

    在本篇文章里小编给大家整理的是一篇关于python中GIL的原理及用法总结内容,有需要的朋友们可以学习参考下。
    2021-03-03
  • 利用Python优雅的登录校园网

    利用Python优雅的登录校园网

    这篇文章主要介绍了如何利用Python优雅的登录校园网,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-10-10
  • Python Charles抓包配置实现流程图解

    Python Charles抓包配置实现流程图解

    这篇文章主要介绍了Python Charles抓包实现流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python轻量级Web框架之Flask用法详解

    Python轻量级Web框架之Flask用法详解

    Flask是一个用Python编写的轻量级Web应用框架,由于其“微”性质,Flask在提供核心服务的同时,仍然提供了许多扩展的可能性,在这篇文章中,我们将从最基础开始,学习如何使用Flask构建一个Web应用,需要的朋友可以参考下
    2023-08-08
  • Python二叉树初识(新手也秒懂!)

    Python二叉树初识(新手也秒懂!)

    二叉树是一种简单的树形结构,其每个节点的分支节点数有0,1或2个,下面这篇文章主要给大家介绍了关于Python二叉树的相关资料,本文介绍的非常通俗易懂,新手也秒懂,需要的朋友可以参考下
    2022-05-05
  • Python字典实现伪切片功能

    Python字典实现伪切片功能

    这篇文章主要介绍了Python字典实现伪切片功能,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Python多分支if语句的使用

    Python多分支if语句的使用

    这篇文章主要介绍了Python多分支if语句的使用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • PYQT5 实现给listwidget的滚动条添加滚动信号

    PYQT5 实现给listwidget的滚动条添加滚动信号

    这篇文章主要介绍了PYQT5 实现给listwidget的滚动条添加滚动信号,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python 中的range(),以及列表切片方法

    Python 中的range(),以及列表切片方法

    今天小编就为大家分享一篇Python 中的range(),以及列表切片方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python3.5 处理文本txt,删除不需要的行方法

    Python3.5 处理文本txt,删除不需要的行方法

    今天小编就为大家分享一篇Python3.5 处理文本txt,删除不需要的行方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论