利用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 第一步 hello world
Sep 25 Python
Python计算回文数的方法
Mar 11 Python
Python中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
python 全文检索引擎详解
Apr 25 Python
python实现NB-IoT模块远程控制
Jun 20 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
python字符串循环左移
Mar 08 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
Python玩转PDF的各种骚操作
May 06 Python
Python中顺序表原理与实现方法详解
Dec 03 Python
Python实现微信表情包炸群功能
Jan 28 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 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
长波有什么东西
2021/03/01 无线电
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
重新认识php array_merge函数
2014/08/31 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
php实现小程序支付完整版
2018/10/09 PHP
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
js操作数据库实现注册和登陆的简单实例
2016/05/26 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
[01:25]2015国际邀请赛最佳短片奖——斧王《拆塔英雄:天赋异禀》
2015/09/22 DOTA
Python FTP操作类代码分享
2014/05/13 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
白酒业务员岗位职责
2013/12/27 职场文书
顶碗少年教学反思
2014/02/21 职场文书
元旦寄语大全
2014/04/10 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
奖励申请报告范文
2015/05/15 职场文书
商务宴会祝酒词
2015/08/11 职场文书
高三数学教学反思
2016/02/18 职场文书