利用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中使用Tkinter模块创建GUI程序实例
Jan 14 Python
使用Python生成url短链接的方法
May 04 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
Python 编程速成(推荐)
Apr 15 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
解决Django连接db遇到的问题
Aug 29 Python
python实现大学人员管理系统
Oct 25 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
如何清空python的变量
Jul 05 Python
python之pygame模块实现飞机大战完整代码
Nov 29 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中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
关于laravel 子查询 & join的使用
2019/10/16 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
Python 进程之间共享数据(全局变量)的方法
2019/07/16 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
Django视图类型总结
2021/02/17 Python
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
硕士研究生个人求职信
2013/12/04 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
就业协议书的作用
2014/04/11 职场文书
洗手间标语
2014/06/23 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP