教你使用pyinstaller打包Python教程
作者:wtzhu_13 发布时间:2021-01-20 01:07:28
一、单个文件打包
1.1 简单打包
例如现在有一个main.py文件内容如下
import os
print("hello world")
os.system("pause")
运行结果如图
现在用一下命令打包成一个可执行文件pyinstaller -F main.py
再同级目录下生成一个dist文件夹里面就会生成一个可执行文件,双击就可以执行
1.2 带图标打包
有的时候为了美观,可以给可执行文件加一个图标,这时用这个命令pyinstaller -F main.py-i filename.ico
打包完成后把这个ico文件复制到dst和可执行文件一起就可以了
二、项目多文件打包
上面只是一些简单的demo打包成可执行文件的简单方式,大多数时候需要打包的都是多个文件的项目,这个时候就会复杂一些,主要使用一下命令进行pyinstaller -D main.py -p other1.py -p other2.py [-w] -i flie.ico
对部分命令解释:
命令 | 作用 |
-F | 打包成一个exe文件,就是不管原文件时多少个最终生成只是一个exe可执行文件,这种方式再大型项目中不适用,打开程序太慢 |
-D | 以依赖的方式打包,类似于平时安装工具的方式,会有一对的库文件,一般项目建议这种方式 |
-p | 主文件以外其他用到的python文件 |
-w | 运行程序的时候不显示终端。如果不加的话就是做了UI界面,运行的时候也会跳出终端,这个视情况决定 |
-i | 加载图标文件 |
这是部分用到的命令的解释,还有其他命令可以上官网查看文档查询。
例程如下:
有个项目有4个Python文件运行主程序效果如图
用此命令打包pyinstaller -D MysherTools.py -p BLC.py -p consistencyCheck.py -p ui.py -w -i .\inco\tool.ico
生成如图所示的文件
双击运行exe可执行文件效果如图
一般出现如上的提示,都是用到的静态文件没有放在指定路径下,因为打包的时候ico文件是放在icon目录下,所以需要将这个目录拷贝到可执行文件的路径下。放到指定位置后运行正常如图
注意:文件用到的静态文件一定要保证路径正常,不然运行会出错。
三、打包后文件太大
一般如果直接这么打包会导致打包后的文件特别大,这时候就需要创建一个虚拟环境,只安装项目需要的库文件,然后再打包,这样就会小很多,因为python环境下没用到的库也被打包进去导致体积太大。
来源:https://blog.csdn.net/wtzhu_13/article/details/117225925


猜你喜欢
- python装饰器就是用于扩展原函数功能的一种函数,这个函数特殊的地方就是它的返回值也是一个函数,使用Python装饰器的一个好处就是:在不
- yolov5的head修改为decouple headyolox的decoupled head结构本来想将yolov5的head修改为dec
- 用Python求解微分线性方程因为之前用matlab也编写过,所以前不久试着用python写,感觉之间互通点也蛮多的,易理解。题目:稀疏线性
- 在开发django应用的过程中,使用开发者模式启动服务是特别方便的一件事,只需要 python manage.py runserver 就可
- 前2种方法主要用到了列表解析,性能稍差,而最后一种使用的时候生成器表达式,相比列表解析,更省内存列表解析和生成器表达式很相似:列表解析[ex
- Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译
- 介绍还记得你在小学时学习如何加减数字吗?现在,你也可以对图像做同样的事情!输入图像可以进行算术运算,例如加法、减法和按位运算(AND、OR、
- TEMPLATESDjango 1.8的新特性一个列表,包含所有在Django中使用的模板引擎的设置。列表中的每一项都是一个字典,包含某个引
- 业务场景:需要记入访客的访问情况,但不能重复记入可以插入前进行判断要插入的数据是否存在业务代码如下 :INSERT INTO t_topic
- 前言sklearn是python的重要机器学习库,其中封装了大量的机器学习算法,如:分类、回归、降维以及聚类;还包含了监督学习、非监督学习、
- CKeditor编辑器是FCKeditor的升级版本想对于FCK来说,确实比较好用,加载速度也比较快以下是如果通过JS获取CKeditor编
- 1.安装插件,在非虚拟环境conda install nb_condaconda install ipykernel2、安装ipykerne
- 本文实例讲述了Python实现清理微信僵尸粉功能。分享给大家供大家参考,具体如下:原理通过Pyhton调用itchat模块登录网页版微信,给
- python3获取控制台输入的数据的方法:可以利用input()函数来获取。python3为我们提供了input()函数,该函数用来接收一个
- 前言最近在做项目高可用时,需要使用数据同步。由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Mast
- 需求:查询进行中的活动数据进行中一共有以下几种情况:1.开始时间为空,结束时间为空, 此结果数据将永远为进行中的数据2.开始时间为空,结束时
- 以下实验是我在百度公司实习的时候做的,记录下来留个小经验。多GPU训练cifar10_97.23 使用 run.sh 文件开始训练cifar
- 一、opencv是什么?OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.二、使用步骤1.引入库代码如下:import cv2
- 使用Python 分析Nginx access 日志,根据Nginx日志格式进行分割并存入MySQL数据库。一、Nginx access日志
- 可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/11/03/python-m