利用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 相关文章推荐
OpenCV实现人脸识别
Apr 07 Python
python正则表达式re之compile函数解析
Oct 25 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
python函数的作用域及关键字详解
Aug 20 Python
提升python处理速度原理及方法实例
Dec 25 Python
Python面向对象原理与基础语法详解
Jan 02 Python
python实现银行实战系统
Feb 26 Python
深入浅析Python 命令行模块 Click
Mar 11 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 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/02/14 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php 过滤英文标点符号及过滤中文标点符号代码
2014/06/12 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
javascript学习笔记之10个原生技巧
2014/05/21 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
python实现报表自动化详解
2017/11/16 Python
python版DDOS攻击脚本
2019/06/12 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
土木工程应届生求职信
2013/10/31 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
团日活动总结书格式
2014/05/08 职场文书
乱世佳人观后感
2015/06/08 职场文书