利用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绘制人人网好友关系图示例
Apr 01 Python
pandas按若干个列的组合条件筛选数据的方法
Apr 11 Python
django 删除数据库表后重新同步的方法
May 27 Python
详解Python安装scrapy的正确姿势
Jun 26 Python
Python绘制并保存指定大小图像的方法
Jan 10 Python
python函数局部变量、全局变量、递归知识点总结
Nov 15 Python
Python高级编程之继承问题详解(super与mro)
Nov 19 Python
Python FFT合成波形的实例
Dec 04 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
python列表删除和多重循环退出原理详解
Mar 26 Python
Django+Django-Celery+Celery的整合实战
Jan 20 Python
Pygame Event事件模块的详细示例
Nov 17 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基础学习笔记
2007/03/18 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
PHP rsa加密解密使用方法
2015/04/27 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
初始Nodejs
2014/11/08 NodeJs
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
jupyter安装小结
2016/03/13 Python
Python AES加密实例解析
2018/01/18 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
综合测评自我鉴定
2013/10/08 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
投资建议书模板
2014/05/12 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
社区党建工作汇报材料
2014/10/27 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
java调用Restful接口的三种方法
2021/08/23 Java/Android