把Python程序转为可执行的EXE文件,之前已经介绍过,像py2exebbfreeze。 以我自己使用的经历来看,这两款都还不错,比较适合简单的Python程序,如果你加载的第三方类库比较多的话,不仅体积大,而且可能打包之后还是无法执 行。而且有的打包之后,执行时不是单个窗口,有一个类似Console的黑框框(听说可以取消,但不知道如何配置)。之前写过一个画宝宝身高和体重趋势的 Python程序,一直想把它打包,但无奈,这两款软件都没能成功。

今天搜索一番,发现还有一个工具,当然不止一个啦,StackOverFlow里面讨论中,比较推荐PyInstaller, 而且让我意外的是,PyInstaller本身并不属于Python包,所以你无须把它放在site-packages文件夹内。安装过程也比较简单:

1. 你从官网下载之后,解压到某个目录,比如C:\ItDevelop\pyinstaller15

2.  Pyinstaller不需要安装,但是需要进行一个配置,配置信息跟当前系统有关,配置结果保存在config.dat文件内,所以如果你更换python版本,需要重新执行这个配置命令:

1
python Configure.py

要能够在正确执行这个命令,你首先必须配置环境变量:把python的安装路径添加到path变量中。然后cmd到pyinstaller的根目录。

C:\ItDevelop\pyinstaller15>python Configure.py
ERROR: Python 2.6+ on Windows support needs pywin32
Please install http://sourceforge.net/projects/pywin32/

C:\ItDevelop\pyinstaller15>python Configure.py
I: computing EXE_dependencies
I: Finding TCL/TK…
W: library coredll.dll required via ctypes not found
I: Analyzing C:\ItDevelop\python27\DLLs\_tkinter.pyd
I: Adding tcl85.dll dependency of _tkinter.pyd

I: … resource update available
I: Testing for Unicode support…
I: … Unicode available
I: testing for UPX…
I: …UPX unavailable
I: computing PYZ dependencies…
I: done generating config.dat

如果配置过程中提示你需要安装pywin32,那么代表你之前没有安装它,下载安装完即可。结果提示保存在config.dat文件中。其中config.dat文件存放在pyinstaller的根目录。

3. 创建spec文件:

1
2
C:\ItDevelop\pyinstaller15>makespec.py -F -w --icon=D:\BabyWandH\src\faviconw.ic
o D:\BabyWandH\src\BabyWandH.py

icon是你喜欢的图标文件,py为你要打包的程序。执行完毕之后,在pyinstaller安装路径下会自动生成一个和py文件的文件名相同的文
件夹,文件夹内有spec文件。本例子中C:\ItDevelop\pyinstaller15\BabyWandH\BabyWandH.spec。
4. 最后开始build生成exe文件,首先把上一步生成的spec文件,拷贝到与你py源文件的相同目录下D:\BabyWandH\src\,然后执行:

1
C:\ItDevelop\pyinstaller15>build.py D:\BabyWandH\src\BabyWandH.spec

在D:\BabyWandH\src\dist目录下就已经生成了你所需要的exe文件。

参考资料:pyinstaller官方pdf

PyInstaller:把你的Python转为Exe的更多相关文章

  1. (转)使用 PyInstaller 把python程序 .py转为 .exe 可执行程序

    最近使用Python为项目开发一款绘图工具(绘出 声场三维模型).因为希望能把Python脚本发布为脱离Python平台运行的可执行程序,比如单个的exe文件.PyInstaller恰满足这个需求.本 ...

  2. python程序转为exe文件

    python开发者向普通windows用户分享程序,要给程序加图形化的界面(传送门:这可能是最好玩的python GUI入门实例! http://www.jianshu.com/p/8abcf73ad ...

  3. Python打包EXE神器 pyinstaller

    最近由于项目需要,以前的python文件需要编辑为EXE供前端客户使用. 由于最早接触的是distutils,所以一开始准备使用distutils和py2exe搭配来进行python的exe化,也就是 ...

  4. python制作exe可执行文件的方法---使用pyinstaller

    python制作exe可执行文件的方法---使用pyinstaller   python生成windows下exe格式的可执行程序有三种可选方案: py2exe是大家所熟知的,今天要介绍pyinsta ...

  5. 【Python学习】使用Pyinstaller将py文件导出为exe文件

    PyInstaller其实就是把python解析器和你自己的脚本打包成一个可执行的文件,但是它不是跨编译的,也就是说在Windows下用PyInstaller生成的exe只能运行在Windows下,在 ...

  6. python预课04 列表,元祖,统计值计算示例,py文件转为EXE文件,爬虫初步学习

    列表,元组 #list l1 = [1, 2, 3, '高弟弟'] #定义一个列表 #增 l1.append("DSB") #最后增加"DSB"的元素 #删 l ...

  7. Pyinstaller 打包python 到exe 在windows下免python环境运行python

    在创建了独立应用(自包含该应用的依赖包)之后,还可以使用 PyInstaller 将 Python 程序生成可直接运行的程序,这个程序就可以被分发到对应的 Windows 或 Mac OS X 平台上 ...

  8. python生成.exe

    python生成.exe 1.在Anaconda Prompt终端输入pip install pyinstaller 2.输入python -m pip install pypiwin32 pytho ...

  9. python的exe反编译

    目录 python的exe反编译 方法一.使用archive_viewer.py提取pyc 方法二.使用pyinstxtractor.py提取pyc python的exe反编译 驱动人生样本为pyth ...

随机推荐

  1. python---aiohttp的使用

    1.aiohttp的简单使用(配合asyncio模块) import asyncio,aiohttp async def fetch_async(url): print(url) async with ...

  2. 实现自己的Promise polyfill

    功能清单: Promise.prototype.then() Promise.prototype.catch() Promise.reject() Promise.resolve() Promise. ...

  3. UVALive-4670 Dominating Patterns / 洛谷 3796 【模板】AC自动机

    https://vjudge.net/problem/UVALive-4670 中文题面:https://www.luogu.org/problem/show?pid=3796 AC自动机模板 注意如 ...

  4. 2015/8/29 Python基础(3):数值

    数字提供了标量储存和直接访问,是不可更改类型,每次变更数值会产生新的对象.Python支持多种数字类型,包括整型.长整型.布尔型.双精度浮点.十进制浮点和复数.在Python中,变量并不是一个盒子,而 ...

  5. Spring Web 项目Junit测试报错问题

    测试对象是Web项目的Service类,参照网上查到的资料,按如下方式执行时报错, //使用junit4进行单元测试 @RunWith(SpringJUnit4ClassRunner.class) / ...

  6. Bzoj4870 [SXOI2017]组合数问题

    Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 155  Solved: 78 Description Input 第一行有四个整数 n, p, k, ...

  7. .NET中使用switch和java不一样的地方。

    1.不能这样贯穿 我们知道,java 和 C在使用switch时候可以这样. switch (i) { //java中此处不使用break // 执行了case 1:对应的语句后直接 贯穿到 case ...

  8. Spring Cloud的基本认识和使用Spring Cloud的基本教程(山东数漫江湖)

    认识Spring Cloud Spring Cloud简单来说就是一个微服务相关的框架,至于什么是微服务,简单来说就是一个整体项目由多个单独运行的小项目构成,每个小项目负责一个或多个功能,每个小项目有 ...

  9. vue实现微信对话

    因为项目中需要实现仿微信对话功能,于是抽空实现了下,主要是h5的canvas的把图片和文字绘制到画布上 原文来自我的个人博客:http://lvhww.com/index.php/archives/6 ...

  10. hdu 1395 2^x mod n = 1(暴力题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1395 2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Oth ...