码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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:\test014\test4.py

      file

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

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

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

      file

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

      【往期精彩】

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

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

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

    • 相关阅读:
      数据结构---串(整个部分)
      如何开始使用 Kubernetes RBAC
      使用OpenCV如何确定一个对象的方向
      大数据批量处理神器 - 自定义周期批量消费队列的实现
      新一代网络请求库:python-httpx库
      金仓数据库 KingbaseGIS 使用手册(6.2. 管理函数)
      Python作业【简单算法题】
      WeetCode3 暴力递归->记忆化搜索->动态规划
      leetcode872. 叶子相似的树(java)
      一款pdf工具
    • 原文地址:https://blog.csdn.net/chengxuyuan_110/article/details/127561304
    • 最新文章
    • 沪漂五周年了:我越来越迷茫了
      Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
      MySQL-Seconds_behind_master的精度误差
      [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
      AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
      Agent OS :五种驯服不确定性的范式
      PortSwigger SQL注入LAB11
      数据库即时编译JIT
      [Begin]AI Learn Data Day 0
      深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    小工具 小游戏
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

    京公网安备 11010502049817号