使用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做量化投资系列之比特币初始配置
Jan 23 Python
python实现求解列表中元素的排列和组合问题
Mar 15 Python
Python给图像添加噪声具体操作
Mar 03 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
用python写测试数据文件过程解析
Sep 25 Python
Pandas聚合运算和分组运算的实现示例
Oct 17 Python
Tensorflow进行多维矩阵的拆分与拼接实例
Feb 07 Python
python导入库的具体方法
Jun 18 Python
Visual Studio Code搭建django项目的方法步骤
Sep 17 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
pandas中对文本类型数据的处理小结
Nov 01 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 foreach 参数强制类型转换的问题
2010/12/10 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
Yii学习总结之安装配置
2015/02/22 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
VUE 配置vue-devtools调试工具及安装方法
2018/09/30 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
js实现上下左右键盘控制div移动
2020/01/16 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
车辆维修工自我评价怎么写
2013/09/20 职场文书
法学毕业生自我鉴定
2014/01/31 职场文书
一年级小学生评语
2014/04/22 职场文书
安全演讲稿大全
2014/05/09 职场文书
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
Python内置数据类型中的集合详解
2022/03/18 Python
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL