利用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创建一个最简单http webserver服务器的方法
May 08 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
python 切换root 执行命令的方法
Jan 19 Python
pow在python中的含义及用法
Jul 11 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
Python socket服务常用操作代码实例
Jun 22 Python
Python如何操作docker redis过程解析
Aug 10 Python
python属于哪种语言
Aug 16 Python
Python基于Faker假数据构造库
Nov 30 Python
python实现ping命令小程序
Dec 28 Python
Python快速实现一键抠图功能的全过程
Jun 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中使用GD库做验证码
2016/03/31 PHP
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
python去除所有html标签的方法
2015/05/05 Python
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
python之pandas用法大全
2018/03/13 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
python 接收处理外带的参数方法
2018/12/03 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
教师自荐信范文
2013/12/09 职场文书
幸福中国演讲稿
2014/09/12 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
实习单位指导教师评语
2014/12/30 职场文书
特岗教师个人总结
2015/02/10 职场文书
谢师宴家长致辞
2015/07/27 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
vue首次渲染全过程
2021/04/21 Vue.js
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
详解Go语言Slice作为函数参数的使用
2021/07/02 Golang
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server