pyinstaller 打包避坑指南之二

pyinstaller 生成的包为什么那么大?

pyinstaller 会把打包时的 python 环境中安装的所有库包都打包到生成的包中,我们日常编程的 python 环境日积月累地安装了各种 python 库,尤其是通过 Anaconda 平台安装的 python,集成的包就更多。并且 Anaconda 有一个 base 环境,编程虚拟的环境没有安装的库,有时会到 base 环境中去查找。所以,不要在 Anaconda 的虚拟 python 环境中打包。在 Anacodna python 环境中打包,失败的概率超过80%,并且生成的包一般都超过 800 MB,有的甚至达到 1.2 GB。这么大的包有点吓人!

怎样让 pyinstaller 生成的包最小?

创建一个独立的打包环境,在打包环境中仅安装必须的包,既能让 pyinstaller 生成的包尽可能的小,还能大大提高打包的成功率。

相应的,我们把开发脚本的python环境称之为开发环境

找到并安装你的程序运行必需的包

请按照如下步骤找到你的脚本运行必需的包:

  1. 确认你的 python 脚本在你的 python 开发环境中运行正确。
  2. 再在你的打包环境中运行 你的脚本,会出现类似下图这样的错误:
  3. 查看你开发环境中相应包的版本号,比如,我的 开发环境中的 wxPython 版本为 4.0.7;
    在这里插入图片描述
  4. 在你的 打包环境中安装 wxPython 4.0.7,
    在这里插入图片描述
    注意:安装与开发环境相同的版本号
  5. 重复步骤2,3,4,安装脚本运行所有必需的包;
  6. 直到在打包环境中运行你的脚本正确。

打包测试

在你的打包环境下,转到要打包的脚本目录下。运行最基本的 pyinstaller 命令。
在这里插入图片描述
这样操作,打包的成功率大大提高,并且生成的包最小。我开始在 Anaconda 环境下打包生成的包超过800MB,并且生成的 exe 程序运行失败。

按照前面的步骤打包,生成的包仅 30 MB,且一次成功!

有任何问题欢迎到 Ptyhon草堂 QQ群:457079928 交流!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要使用PyInstaller打包一个批处理文件,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了PyInstaller。你可以使用以下命令在虚拟环境中安装PyInstaller:pip install pyinstaller 2. 激活你的虚拟环境。你可以使用以下命令激活虚拟环境:activate 虚拟环境名称 3. 进入到你的Python工程文件夹中。你可以使用cd指令进入到文件夹:cd 你的文件夹路径 4. 使用以下命令将批处理文件打包为可执行文件: pyinstaller -F (-w) -p 虚拟环境路径\Scripts 你的批处理文件名.bat 其中,括号中的-w是可选的,如果不加的话打开exe有cmd命令行,加的话就没有。-p path 是为了注明Python项目所依赖的虚拟环境的路径。如果你不使用虚拟环境,可以不加-p。 以上就是使用PyInstaller打包一个批处理文件的步骤。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Pyintaller打包批处理文件.bat](https://download.csdn.net/download/s627995568/12384628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [虚拟环境下把python项目代码打包成.bat/exe执行文件](https://blog.csdn.net/weixin_37707770/article/details/108815394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [pyinstaller 打包避坑指南之五](https://blog.csdn.net/sinat_32570141/article/details/120361239)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python草堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值