python打包技巧:彻底解决pyinstaller打包exe文件太大的问题

之前也写过很多的小工具,粉丝朋友们应该都知道在本公众号内回复任意关键字即可获取以往的工具源码或是exe可执行应用。

【阅读全文】

file

因为以往发过的小工具基本都是几十MB大小的exe应用,也就没有在意exe太大给大家带来的困扰,今天就准备来彻底的解决一下这个问题。

其实每次打包的exe的应用过大无非就是两个方面的语言因导致的,一是我们在开发的代码的过程中为了简便经常使用import *的操作直接导入库中所有的模块。

二是在打包过程中直接使用现有的环境直接利用pyinstaller的命令,导致python的很多标准库和不需要的三方模块被导入。分析清楚原因那就好办了,解决办法肯定是有的,那就是pipenv非标准库。

接下来具体看看我们该如何使用pipenv打出最小的exe的应用,没有安装的话使用pip的方式安装一下即可。

pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装完成后,即可以使用pipenv的虚拟环境来进行操作了,正常情况下安装下面的步骤执行pipenv的虚拟环境操作:

  1. 建立虚拟环境
    pipenv install
  2. 进入虚拟环境(上一步可省略,因为没有虚拟环境的话会自动建立一个)
    pipenv shell
  3. 安装需要打包的代码块中使用到的所有的python模块
    pip install requests pyquery pysimplegui fake_useragent
  4. 安装pyinstaller模块用于打包
    pip install pyinstaller
  5. 使用pyinstaller命令直接开始打包
    pyinstaller -Fw E:test014test4.py

file

需要注意的是如何物理环境中已经安装了pyinstaller,在pipenv的虚拟环境中这个命令是可以使用的,但是千万不要这么做需要在pipenv的虚拟环境中再次安装一下否则打出来的exe的应用包还是很大。

这是因为物理环境中原有的pyinstaller已经关联了很多的python内联模块,导致就算在虚拟环境中打的exe程序包仍然非常大的缘故。

另一个需要注意的是在pipenv的需要环境中必须安装好需要打包的代码块中所引用的相关python模块,不然打出来的exe程序包也不能正常运行的。

file

掌握了上述的pipenv虚拟环境的使用以及pyinstaller的使用,我们都能打出非常小且可用的exe程序包,感谢大家的阅读!

【往期精彩】

github上又出新项目了,可以轻松完成一键抠图!

python做了个自动关机工具【文末获取下载链接】

吐血整理python数据分析利器pandas的八个生命周期!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python打包技巧:彻底解决pyinstaller打包exe文件太大的问题 - Python技术站

(0)
上一篇 2023年4月2日 下午4:36
下一篇 2023年4月2日 下午4:37

相关文章

  • python多线程同步售票系统解决思路

    解决问题场景:假如剩余1000张电影票需要售卖,同时有10家电影App来售卖这1000张电影票。主要的逻辑实现过程是什么,要求使用python技术栈进行解题? 【阅读全文】 1、分析过程 分析:主要信息点是10家App平台同时售卖1000张电影票。此时,可以使用10个python线程来作为10家App平台,同时售卖必须保证电影票数量的同步,比如A平台卖出了一…

    2023年4月2日
    00
  • 记住这些windows网络操作命令,轻松搞定自己的电脑网络!

    windows操作系统中的网络操作主要是网络的配置、网络连接的监听、网络的路由跟踪、DNS服务器解析等等。 【阅读全文】 针对上面的这几项操作,整理了关于windows网络操作相关的使用方法。 1、网络配置 网络配置主要有ip地址、子网掩码、默认网关、DNS服务器地址,一般情况下,在公网的状态下这些地址都是自动获取的不需要我们进行特别的配置。 但是,在我们的…

    2023年4月2日
    00
  • 英语没学好到底能不能做coder,别再纠结了先学起来

    其实,编程中用到的英文词汇并不多,经常用到的写着写着就记住了。大多数时候只有给变量或者对象起名的时候才会去Google上查。于是,我将经常在coding中用到的词汇总结了一下。 【阅读全文】 A字母开头的英文词汇 Appearance外表assert/assertion异常add添加append附加args/argument参数attribute属性 B字母…

    2023年4月2日
    00
  • 我使用pangu模块做了一个文本格式化小工具!

    其实使用pangu做文本格式标准化的业务代码在之前就实现了,主要能够将中文文本文档中的文字、标点符号等进行标准化。 阅读全文 但是为了方便起来我们这里使用了Qt5将其做成了一个可以操作的页面应用,这样不熟悉python的朋友就可以不用写代码直接双击运行使用就OK了。 为了使文本格式的美化过程不影响主线程的使用,特地采用QThread子线程来专门的运行文本文档…

    2023年4月2日
    00
  • 懒人python操作,代码中永远只需要导入一个库

    Pyforest是一个开源的Python库,可以自动导入代码中使用到的Python库。 【阅读全文】 实话说,作为一个程序员还是得不停的学习呀。昨天晚上睡觉之前就在论坛上面溜达了一会儿,发现了有个叫pyforest的python非标准库可以自动导入代码中使用到的Python库,我竟然还不知道。 于是,迫不及待的测试了一下还真行,真是拯救了我们这些懒人。事情的…

    2023年4月2日
    00
  • 用python做一个文本翻译器,自动将中文翻译成英文,超方便的

    translate非标准库是python中可以实现对多种语言进行互相翻译的库,使用时只需要设置目标语言(比如:中文、英文)后,会自动将原始文本翻译成我们需要的目标语言。 【阅读全文】 使用pip的方式安装translate非标准库。 pip install translate 准备好之后进行代码编写过程,实现的方式也比较常规。 输入需要翻译的文本文件路径。 …

    2023年4月2日
    00
  • python实现excel数据与mysql数据库互通有无

    【阅读全文】 python在制作一些小工具上本身就有着得天独厚的优势,大多数非标准库的应用只需要进行简单的安装即可使用。 比如:使用python将excel中的数据导入到mysql数据库表中,或是将mysql数据库表中的数据直接导出为excel都只需要简单的几行代码就可以完成,假如使用Java来做这件事强那可就有些复杂了呢。 话不多说,接下来直接进入正题..…

    2023年4月2日
    00
  • 如何实现根据照片获取地理位置及如何防御照片泄漏地理位置

    【阅读全文】 首先,说明一下python确实可以根据照片获取地理位置,但是也是有一定的限制条件的。 获取照片地理位置的实现思路是这样的:通过提取照片中的经纬度信息。然后通过经纬度信息找到具体的地理位置信息。 安装可以读取经纬度信息的python非标准库exifread pip install exifread 将该模块导入到当前代码块中。 import ex…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部