使用PyInstaller将python转成可执行文件exe笔记


Posted in Python onMay 26, 2018

1、安装PyInstaller

PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPX,UPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到PyInstaller解压后的文件夹内。设PyInstaller的文件夹为D:\PyInstaller,下同。命令行下进入D:\PyInstaller,运行Configure.py,应该看到如下信息:

I: computing EXE_dependencies
I: Finding TCL/TK...
I: found TCL/TK version 8.5
I: testing for Zlib...
I: ... Zlib available
I: Testing for ability to set icons, version resources...
I: ... resource update available
I: Testing for Unicode support...
I: ... Unicode available
I: testing for UPX...
I: ...UPX available
I: computing PYZ dependencies...

不能出现开头为E(Error)的信息,最好不要有W(Warning)的信息。如果出现找不到某dll,请把该dll文件放置到C:\Windows\system32下,一般能解决。

Linux用户还需要编译Runtime Executables,Windows用户不需要。主要是运行Make.py,会在PyInstaller\support\load\下生成run和run_d两个文件,详见PyInstaller\doc\Manual.html说明。

2、写一个Py程序

为了实验,写一个HelloWorld.py,假设保存在C:\HelloWorld.py

#!/usr/bin/env python
print 'Hello,World!'
words = raw_input('What do you want to say? ')
print 'you said:'+words

3、创建spec文件

spec文件是用来告诉PyInstaller要编译的py文件和参数的。执行"Makespec.py+参数+Py代码路径"就可以,主要参数如下(详见PyInstaller\doc\Manual.html):

-F, --onefile Py代码只有一个文件
-D, --onedir Py代码放在一个目录中(默认是这个)
-K, --tk 包含TCL/TK
-d, --debug 生成debug模式的exe文件
-w, --windowed, --noconsole 窗体exe文件(Windows Only)
-c, --nowindowed, --console 控制台exe文件(Windows Only)
-X, --upx 使用upx压缩exe文件
-o DIR, --out=DIR 设置spec文件输出的目录,默认在PyInstaller同目录
--icon=<FILE.ICO> 加入图标(Windows Only)
-v FILE, --version=FILE 加入版本信息文件

对于HelloWorld.py,具体执行以下代码:

Makespec.py --onefile --console --upx --tk -o C:\ C:\HelloWorld.py

执行后C:\就出现HelloWorld.spec

4、Build spec文件,生成exe文件

执行:

Build.py C:\HelloWorld.spec

一长串信息之后,你会在C:\下发现HelloWorld.exe这个文件,就是它啦!体积还真不小,2.7M,这是因为这个HelloWorld程序杀鸡用牛刀罢了。此外其它的文件均是过程文件,可删除。

Python 相关文章推荐
给Python入门者的一些编程建议
Jun 15 Python
Python正则表达式教程之一:基础篇
Mar 02 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
浅谈python 中类属性共享的问题
Jul 02 Python
python+rsync精确同步指定格式文件
Aug 29 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
Python实现AI自动抠图实例解析
Mar 05 Python
Python插件机制实现详解
May 04 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python带动态参数功能的sqlite工具类
May 26 #Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 #Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
May 26 #Python
Python多重继承的方法解析执行顺序实例分析
May 26 #Python
Python多继承顺序实例分析
May 26 #Python
Python装饰器用法实例总结
May 26 #Python
python 脚本生成随机 字母 + 数字密码功能
May 26 #Python
You might like
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现马耳可夫链算法实例分析
2015/05/20 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
使用python 3实现发送邮件功能
2018/06/15 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
社区十八大感言
2014/01/19 职场文书
静心口服夜广告词
2014/03/20 职场文书
促销活动总结报告
2014/04/26 职场文书
大学活动总结格式
2014/04/29 职场文书
大连星海广场导游词
2015/02/10 职场文书
学习保证书100字
2015/02/26 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
python not运算符的实例用法
2021/06/30 Python
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL