Pyinstaller--打exe神器!麻麻再也不用担心我的环境

本文详细介绍如何使用PyInstaller将Python脚本打包成独立的Windows可执行文件。包括安装配置、常用参数解析及图标设置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因

最近在工作中用python实现了部分自动化的功能,但是呢,电脑中若没有安装python,此时如果将编写的脚本拷到他那里去用,就会涉及到一个跨环境的问题。后经查阅,有一款“神器”—-pyinstaller,可以通过它将你写好的py脚本打成exe的包,然后在windows下,即使没有python环境,也可以运行脚本。

环境

  • Python3.6.1
  • Windows10

安装pyinstaller

通过下面的命令,可以直接进行安装,个人比较习惯用pip。

pip install pyinstaller

安装的过程中,它会自动下载其他三个用到的第三方库,没有影响的,耐心等待即可,昨天晚上安装的忘记截图了。就不上图了。

安装完,我发现我的Script下多了好多文件,如下图:

这里写图片描述

这里写图片描述

pyinstaller参数介绍

我使用的时候是直接进入了当前Script下安装好pyinstaller的路径下执行的cmd,此时可以直接输入下面命令,如下图:

pyinstaller --help

这里写图片描述

然后让我们看看它的帮助文档,其中我用红框标出来的便是中点选项:

解释一下
-D 创建一个包含exe的文件夹(此选项是默认选项,若使用命令的时
    候什么都不带,默认为此选项)
-F 创建一个exe文件(我一般直接用此选项,因为看起来很简洁,
    就一个exe文件,跟windows安装似的)
-n 设置名字(默认生成的exe文件名字就是python脚本的名字)

这里写图片描述

-c 打开一个标准输出的控制台窗口(默认选项,说简单一点
    就是你在打包过程中遇到的一些日志输出)
-w 与-c相反,不输出控制台的信息
-i 这个选项有必要重点说一下,为了美观而设计的,生成的exe设置
    的图标,后面我会重点讲一下。

这里写图片描述

如何使用?

有了上面的参数就好说了,使用命令如下:
当前路径:Python的Script下安装好pyinstaller的路径下执行的cmd,此路径下还需要有你的图标文件(如果你想改exe图标的话),还需要把你的python脚本也放在当前路径下。

pyinstaller -F -i sum.ico xxxx.py
(-F 是只生成一个exe文件。-i是为了给他图标)

执行成功后,会如下图:
这里写图片描述

当然,如果你是第一次运行,它输出的日志远不止如此,我这里是因为已经运行过好几次了,我们可以看一下每次生成,它会在当前的目录下对应存放对应的文件,如下图:

这里写图片描述

而你成功生成的exe文件在dist文件夹当中,如下图:

这里写图片描述

另一个文件夹build 中,是对应在你生成exe过程中一些日志之类的文件,如下图:

这里写图片描述

关于-i选项需要注意的点

这个参数其实是比较坑爹的,如果你用了此参数,那么请注意一下几点:

  • 不要随意更改png、jpg格式图片,直接修改为ico的格式图片,因为这样并不管用,会报一些很奇葩的错误
  • 这里我给出对应的网址,你可以先从这个网址找图片:https://www.easyicon.net/
  • 通过上面的网址,下载后依然遵循第一条,不能直接修改图片后缀格式,用https://www.ico.la/这个网址去处理你的图片。最终输出的图片为xxx.ico这样的标准格式

通过以上三点,再去用-i参数,你会发现很神奇的成功显示图标,且命令行不会报错。

成功的喜悦

把我生成的exe拷到桌面运行一下看看效果!

这里写图片描述

这是一个用python写的读取execel数据,生成对应文本内容的小工具。可以看到这个exe确实很大。同样python脚本源文件才4kb,生成的exe33MB。。。不多说了。执行下走起!~

这里写图片描述

执行成功,是我源代码中写到的,左侧是运行后生成的txt文档!

小Tips (黑框一闪而过)

生成的exe文件你们执行的话,cmd黑框肯定会一闪而过,但是没有关系,教你们一个方法,只需要在源码中加入下面的代码即可暂停住cmd黑框,因为cmd中通过pause的命令是可以让黑框暂停住的,我之前的那篇爬取博客访问量中也说到过哟,利用pause去debug我的程序。。附上网址:http://blog.youkuaiyun.com/s740556472/article/details/78239204

import os

if __name__ == '__main__':
    xxxx() #你的逻辑函数
    os.system('pause') #这句话才是重点!

至此完!


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值