使用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的Django框架中的通用视图
May 04 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 Python
Python sorted函数详解(高级篇)
Sep 18 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
tensorflow的计算图总结
Jan 12 Python
Python 列表的清空方式
Jan 13 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
Python requests模块cookie实例解析
Apr 14 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python反编译教程之2048小游戏实例
Mar 03 Python
python异常中else的实例用法
Jun 15 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
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
2017/03/17 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
Python中变量交换的例子
2014/08/25 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
Python3 replace()函数使用方法
2018/03/19 Python
python 整数越界问题详解
2019/06/27 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
python通过http下载文件的方法详解
2019/07/26 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
python 实现逻辑回归
2020/12/30 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
开办饭店创业计划书
2013/12/28 职场文书
教师旷工检讨书
2014/01/18 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
检讨书范文1000字
2015/01/28 职场文书
离职证明格式样本
2015/06/12 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
PHP 时间处理类Carbon
2022/05/20 PHP