利用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使用ftplib实现简易FTP客户端的方法
Jun 03 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
python tkinter窗口最大化的实现
Jul 15 Python
Django组件content-type使用方法详解
Jul 19 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
Python标准库itertools的使用方法
Jan 17 Python
python使用ctypes调用扩展模块的实例方法
Jan 28 Python
Python包资源下载路径报404解决方案
Nov 05 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
极典R601SW收音机
2021/03/02 无线电
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
php字符串函数学习之substr()
2015/03/27 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
javascript 精粹笔记
2010/05/09 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
wxPython:python首选的GUI库实例分享
2019/10/05 Python
Python内置类型性能分析过程实例
2020/01/29 Python
利用python实现逐步回归
2020/02/24 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
应届毕业生求职信
2013/11/30 职场文书
团员的自我评价
2013/12/01 职场文书
2016年母亲节寄语
2015/12/04 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android
springboot读取resources下文件的方式详解
2022/06/21 Java/Android