利用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判断字符串是否是json格式方法分享
Nov 07 Python
Python实现的计算马氏距离算法示例
Apr 03 Python
浅谈Python基础—判断和循环
Mar 22 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
Python利用scapy实现ARP欺骗的方法
Jul 23 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
详解python中的lambda与sorted函数
Sep 04 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
Jun 26 Python
python基础之模块的导入
Oct 24 Python
Python必备技巧之函数的使用详解
Apr 04 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
php读取数据库信息的几种方法
2008/05/24 PHP
PHP Global定义全局变量使用说明
2013/08/15 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
PHP最常用的正则表达式
2017/02/13 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
javascript实现可键盘控制的抽奖系统
2016/03/10 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
js实现砖头在页面拖拉效果
2020/11/20 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Python中title()方法的使用简介
2015/05/20 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
html5 canvas移动浏览器上实现图片压缩上传
2016/03/11 HTML / CSS
2014年党课学习材料
2014/05/11 职场文书
2014年居委会工作总结
2014/12/09 职场文书
大学生求职自荐信
2015/03/24 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis