码农知识堂 - 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的八个生命周期!

    • 相关阅读:
      vue3/vue2的兄弟组件的传值
      避坑版-OpenSSH 用户名枚举漏洞(CVE-2018-15473)
      “华为杯”研究生数学建模竞赛2019年-【华为杯】D题:汽车行驶工况构建(附获奖论文和MATLAB代码实现)
      睡眠管理
      C现代方法(第7章)笔记——基本类型
      基于STM32设计的校园一卡通(设计配套的手机APP)
      多线程系列(十六) -常用并发原子类详解
      安科瑞变电站综合自动化系统在助力变电站实现综合自动化
      力扣经典150题第四十题:同构字符串
      循环生成el-descriptions-item
    • 原文地址:https://blog.csdn.net/chengxuyuan_110/article/details/127561304
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号