利用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持久性管理pickle模块详细介绍
Feb 18 Python
Python采用Django开发自己的博客系统
Sep 29 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
python中验证码连通域分割的方法详解
Jun 04 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
Python从文件中读取数据的方法讲解
Feb 14 Python
Python字符串匹配之6种方法的使用详解
Apr 08 Python
使用Python生成200个激活码的实现方法
Nov 22 Python
opencv python如何实现图像二值化
Feb 03 Python
Python使用windows设置定时执行脚本
Nov 12 Python
Python wordcloud库安装方法总结
Dec 31 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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来写记数器(详细介绍)
2006/10/09 PHP
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
js选择器全面解析
2016/06/27 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
解决vue-router进行build无法正常显示路由页面的问题
2018/03/06 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
民事诉讼代理授权委托书
2014/10/11 职场文书
会计求职自荐信
2015/03/26 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL