利用pyinstaller将py文件打包为exe的方法


Posted in Python onMay 14, 2018

写在前面

做大创的时候,因为需要计算合金的各种能量、温度等一大堆数据,为了能够福泽后来的学弟学妹,我决定将我处理数据时用的python程序打包成exe,这样就可以在没有安装python环境的电脑上运行我的程序了。所以上网查了一大堆如何打包的方法,尝试了py2exe和pyinstaller这两种方法,发现还是后者更加的简单便捷。同时为了能够帮助我自己以后再想用到的时候有一个教程可以查找,我就写了这一篇博客出来,留作纪念。

前提条件

首先我们需要两个东西:python3.4版本,pyinstaller模块。

在windows下用pip安装pyinstaller只需要在cmd中输入

pip install pyinstaller

即可。

开始打包

首先我们将想要打包的test.py文件放在文件夹Test中,test.py文件中内容如下

#输入两个数,求两个数之和。

x = input('请输入第一个数:')
y = input('请输入第二个数:')

z = float(x) +float(y)

print('求得和为:'+str(z))

z = input('请按任意键退出...')

这个文件夹绝对地址为C:/Test

所以我们首先通过cmd进入到这个文件夹内,也就是在cmd中输入

cd C:/Test

我们这就相当于已经进入到了这个文件夹中,接下来就是重头戏了,是时候打包了。

再在cmd中输入命令

pyinstaller -F test.py

其中-F这个参数代表将所有内容打包成一个exe文件。如果不带这个参数的话,它将会是一大堆文件,所以这相当于是方便拷贝和使用了。

当一长串信息闪过,最终停止后,我们就可以再看一下文件夹中的内容了,其中多出了一个dist文件夹,里面存放的就是我们所需要的东西:test.exe。

我们打开以后,就可以看到以下界面

利用pyinstaller将py文件打包为exe的方法

示例界面

恭喜你!成功了。

一些小坑

当然,小程序打包成exe谁也不像动则三四百兆,本来就是图个方便,如果太大的话反而还比较麻烦。所以我在打包的时候就发现pyinstaller会把程序用到的所有模块都给他包含进去。

当我用到了numpy模块的时候,我的exe程序一下子涨到了100+M,这就让我很费解,我看了一下打包的信息,原来他把各种PyQt5的模块也给包进去了,然而我的程序中并没有用到PyQt5这个模块,毕竟就一个黑框框,还没有给它写界面呢。

假如我用的例子是

import numpy as np
#输入两个数,求两个数之和。
x = input('请输入第一个数:')
y = input('请输入第二个数:')
z = float(x) +float(y)
print('求得和为:'+str(z))
z = input('请按任意键退出...')

生成的exe大小就到了100M.

所以无奈之下,我只能放弃使用numpy了。

所以诸位大佬如果知道怎么能够自己控制pyinstaller所打包进去的库,还希望在评论或者私信指点一下,感激不尽!!!以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python开发常用的一些开源Package分享
Feb 14 Python
python控制台中实现进度条功能
Nov 10 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
详解从Django Rest Framework响应中删除空字段
Jan 11 Python
python实现列表的排序方法分享
Jul 01 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
Anaconda的安装及其环境变量的配置详解
Apr 22 Python
Python如何读写CSV文件
Aug 13 Python
python matplotlib绘制三维图的示例
Sep 24 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
django的登录注册系统的示例代码
May 14 #Python
django允许外部访问的实例讲解
May 14 #Python
运行django项目指定IP和端口的方法
May 14 #Python
python使用Flask操作mysql实现登录功能
May 14 #Python
查看Django和flask版本的方法
May 14 #Python
Python处理中文标点符号大集合
May 14 #Python
python numpy格式化打印的实例
May 14 #Python
You might like
PHP设计模式之工厂模式详解
2017/10/24 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
PHP实现计算器小功能
2020/08/28 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
详解JavaScript按概率随机生成事件
2017/08/02 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
vue添加自定义右键菜单的完整实例
2020/12/08 Vue.js
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
python使用Berkeley DB数据库实例
2014/09/26 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
想学画画?python满足你!
2020/12/24 Python
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
父亲追悼会答谢词
2014/01/17 职场文书
《乌塔》教学反思
2014/02/17 职场文书
合作投资意向书
2014/04/01 职场文书
投资意向书
2014/07/30 职场文书
学校运动会报道稿
2014/09/23 职场文书
西岭雪山导游词
2015/02/06 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
《桂花雨》教学反思
2016/02/19 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书