使用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操作SQLite简明教程
Jul 10 Python
python实现定时同步本机与北京时间的方法
Mar 24 Python
详解python进行mp3格式判断
Dec 23 Python
Python中static相关知识小结
Jan 02 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
python实现简单多人聊天室
Dec 11 Python
django组合搜索实现过程详解(附代码)
Aug 06 Python
Django框架模板用法入门教程
Nov 04 Python
Django ORM filter() 的运用详解
May 14 Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 Python
python多线程爬取西刺代理的示例代码
Jan 30 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
phpmyadmin操作流程
2006/10/09 PHP
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
详解js中==与===的区别
2017/01/08 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
Angular(5.2-&gt;6.1)升级小结
2018/12/27 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
Python实现批量修改文件名实例
2015/07/08 Python
Python装饰器用法示例小结
2018/02/11 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
毕业设计说明书
2014/05/07 职场文书
活动总结书
2014/05/08 职场文书
会议接待欢迎标语
2014/10/08 职场文书
2014年办公室人员工作总结
2014/12/09 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
婚庆主持词大全
2015/06/30 职场文书