【Python打包成exe】

Python打包成exe


前言

先放点参考

这个字多,写得很详细⇨用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细,万字详述)
Pyinstaller简单使用说明


一、理论知识打底

1.1 什么是exe

exe 文件英文全名是 executable file,翻译为可执行文件(但它不等于可执行文件),可执行文件一般来说包含两种,文件扩展名为 .exe 的是其中的一种。正确的 exe 文件一般可以在 Windows 平台上直接双击运行!我们通常用的各种软件都是通过快捷方式打开的,而这个快捷方式的目标地址就是这个软件的一个 exe 文件。

1.2 为什么搞成exe

为了让别人在不具备python环境的情况下,可以直接执行咱的程序。

二、实操开始----pyinstaller【Base环境下】

把文件发给别人使用的时候,必须将整个项目文件夹发给别人,而不是一个 exe 文件

安装PyInstaller

要使用PyInstaller,需要先安装它。可以使用如下命令在命令行中安装PyInstaller:

bash 复制代码
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

生成exe

bash 复制代码
Pyinstaller -F -w .\028-滑块控件.py

路径要是绝对路径!

【这是一个失败案例】

最终生成了(如果规范点可以在外面生成一个文件夹)

运行exe失败

规规矩矩

打开 Anaconda Prompt

cmd打开Anaconda Prompt,这里的前提是安装了Anaconda⇨在Windows系统下安装Anaconda

进入目标文件夹,执行生成exe的指令

bash 复制代码
Pyinstaller -F -w .\ 028-滑块控件.py

下载并安装 Pyinstaller 模块(在上面的失败案例中我已经成功安装上了),故跳过。

对于最上面的情况我知道为什么了,之后我在桌面也创建了一个文件夹存放这些。之后也出现这个报错。后面查了ai,分析到说是因为当前环境缺少PyQt5的库,于是继续安装

最终直接运行exe就可以成功了。

生成的exe在dist文件夹下中可以查询到。

打包完之后,spec 文件和 build 文件夹就没用了,可以删除了。

其实Python文件删除都不影响!但是给别人发送的时候需要发送整个文件包,而不是exe。

验证成功,删除之后不影响。

这是因为 Pyinstaller 打包的时候会把你环境中的库和模块全部打包进去,这就会使一些你根本用不着的库和模块也被打包进去了!而且这些库被打包之后不仅会使 exe 文件变大,还会使其运行变卡变慢、变得十分臃肿。


总结

pyinstaller安装的方法,其实这个方法是不好的,没那么完美,但我觉得针对现在来说还可以接受,等到以后有需求的时候才学习进阶版本吧。

---2024/6/1

相关推荐
小猴子爱上树1 分钟前
跨境电商AI图片翻译工具:批量图片翻译、视频字幕翻译与智能抠图一站式解决
大数据·人工智能·python·音视频
5G微创业4 分钟前
去除抖音视频水印的Python实现
python·微信小程序·去水印
WeiXin_DZbishe6 分钟前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
小羊没烦恼!7 分钟前
OS X 上使用.NET开发应用程序
开发语言·前端·数据库·人工智能·c#·策略模式
M--Y8 分钟前
LangChain 提示工程:少样本提示与输出解析器
python·langchain·大模型·llm·输出解析器·少样本提示
朱包林9 分钟前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
棉猴10 分钟前
玩游戏学Python5-函数
开发语言·python·函数·玩游戏·游戏编程
Rain的Java大神之路11 分钟前
[特殊字符]8年Java老兵转型AI Agent:90%的人挂在同一个坑,根本不用学Python!(万字实战复盘,建议收藏)
java·数据库·人工智能·后端·python·spring·ai编程
高级程序源25 分钟前
springboot本地生活服务平台33399-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·小程序·flask·课程设计
高级程序源30 分钟前
springboot社区旧物回收管理系统25381-计算机课程设计、毕业设计
vue.js·spring boot·python·django·课程设计