使用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之入门(二)基本数据类型
May 25 Python
Python面向对象编程中的类和对象学习教程
Mar 30 Python
Python3使用正则表达式爬取内涵段子示例
Apr 22 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
Python地图绘制实操详解
Mar 04 Python
pyqt5利用pyqtDesigner实现登录界面
Mar 28 Python
python里 super类的工作原理详解
Jun 19 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
基于Python函数和变量名解析
Jul 19 Python
Django中密码的加密、验密、解密操作
Dec 19 Python
多个python文件调用logging模块报错误
Feb 12 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 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变量可用字符
2014/05/28 PHP
php格式化日期实例分析
2014/11/12 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
PHP实现简单登录界面
2019/10/23 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
webpack打包非模块化js的方法
2018/10/24 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
python中requests小技巧
2017/05/10 Python
python数据结构之列表和元组的详解
2017/09/23 Python
python实现黑客字幕雨效果
2018/06/21 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
python实现弹跳小球
2019/05/13 Python
python+logging+yaml实现日志分割
2019/07/22 Python
python按行读取文件并找出其中指定字符串
2019/08/08 Python
python中open函数的基本用法示例
2019/09/07 Python
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
财务部出纳岗位职责
2013/12/22 职场文书
授权委托书格式模板
2014/04/03 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
四查四看整改措施
2014/09/19 职场文书
2014年计生工作总结
2014/11/21 职场文书
感恩节寄语2015
2015/03/24 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL