利用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编码总结(编码类型、格式、转码)
Jul 01 Python
巧用python和libnmapd,提取Nmap扫描结果
Aug 23 Python
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
使用python和Django完成博客数据库的迁移方法
Jan 05 Python
Python设计模式之观察者模式简单示例
Jan 10 Python
wxPython的安装与使用教程
Aug 31 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
python实现简单颜色识别程序
Feb 19 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
Python  word实现读取及导出代码解析
Jul 09 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 Python
Python经常使用的一些内置函数
Apr 11 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
Prototype Class对象学习
2009/07/19 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
vue跳转页面的几种方法(推荐)
2020/03/26 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Python实现购物程序思路及代码
2017/07/24 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
Windows下安装Scrapy
2018/10/17 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
同程旅游英文网站:LY.com
2018/11/13 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
财务副总经理工作职责
2013/11/25 职场文书
如何写好升职自荐信
2014/01/06 职场文书
幼儿园开学家长寄语
2014/01/19 职场文书
优秀干部获奖感言
2014/01/31 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
多媒体教室标语
2014/06/26 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
社区端午节活动总结
2015/02/11 职场文书
python执行js代码的方法
2021/05/13 Python
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python