使用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连续赋值可能引发的错误
Nov 10 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
linux安装python修改默认python版本方法
Mar 31 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
Python Web框架之Django框架文件上传功能详解
Aug 16 Python
Python:slice与indices的用法
Nov 25 Python
Python识别html主要文本框过程解析
Feb 18 Python
python能做哪方面的工作
Jun 15 Python
Python JSON常用编解码方法代码实例
Sep 05 Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 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相关资料
2006/10/09 PHP
PHP安全配置
2006/10/09 PHP
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
PHP中的日期处理方法集锦
2007/01/02 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
庆八一活动方案
2014/01/25 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
交流会主持词
2015/07/02 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书