利用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
最大K个数问题的Python版解法总结
Jun 16 Python
spyder常用快捷键(分享)
Jul 19 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
Django REST Framework之频率限制的使用
Sep 29 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
Python绘制数码晶体管日期
Feb 19 Python
python3实现无权最短路径的方法
May 12 Python
Django REST framework 限流功能的使用
Jun 24 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中删除、清空session的方式总结
2015/10/09 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
中止javascript执行的方法
2014/02/14 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
Python读写Excel文件的实例
2013/11/01 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
python如何查看系统网络流量的信息
2016/09/12 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
pycharm远程调试openstack代码
2017/11/21 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python安装教程
2018/02/28 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
前台文员的岗位职责
2013/11/14 职场文书
小学教师听课制度
2014/02/01 职场文书
幼儿园新年寄语
2014/04/03 职场文书
市场营销策划方案
2014/06/11 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
索赔员岗位职责
2015/02/15 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
倡议书怎么写?
2019/04/11 职场文书
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL