使用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利用elaphe制作二维条形码实现代码
May 25 Python
python实现将元祖转换成数组的方法
May 04 Python
Linux系统上Nginx+Python的web.py与Django框架环境
Dec 25 Python
django js实现部分页面刷新的示例代码
May 28 Python
python 对key为时间的dict排序方法
Oct 17 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
Nov 06 Python
python绘制简单彩虹图
Nov 19 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
Python表达式的优先级详解
Feb 18 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
Jun 18 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
python中有帮助函数吗
Jun 19 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
JQuery jsonp 使用示例代码
2009/08/12 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
python实现微信接口(itchat)详细介绍
2017/10/23 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
python调用其他文件函数或类的示例
2019/07/16 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
极简的HTML5模版
2015/07/09 HTML / CSS
外贸公司实习自我鉴定
2013/09/24 职场文书
小学生自我评价范文
2014/01/25 职场文书
初中学生评语大全
2014/04/24 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
总经理任命书范本
2014/06/05 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
让子弹飞观后感
2015/06/11 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
python实现过滤敏感词
2021/05/08 Python