使用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生成url短链接的方法
May 04 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
python Pandas 读取txt表格的实例
Apr 29 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Python assert语句的简单使用示例
Jul 28 Python
python excel转换csv代码实例
Aug 26 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 Python
python 星号(*)的多种用途
Sep 21 Python
python smtplib发送多个email联系人的实现
Oct 09 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在各种web服务器的运行模式详解
2013/06/03 PHP
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
PHP CURL获取cookies模拟登录的方法
2013/11/04 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
jQuery的ready方法详解
2014/11/27 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
Node.js API详解之 readline模块用法详解
2020/05/22 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
关于python的list相关知识(推荐)
2017/08/30 Python
python学习教程之使用py2exe打包
2017/09/24 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python3 xpath和requests应用详解
2020/03/06 Python
Python如何telnet到网络设备
2021/02/18 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
2014年冬季防火方案
2014/05/21 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS