• 解决pyinstaller打包程序太大的问题


    项目场景

    我在githubfork了一个使用python编写的flappybird游戏,然后想着打包一下。

    下载地址

    https://github.com/XavierJiezou/FlapPyBird

    游戏截图

    在这里插入图片描述

    项目打包

    先安装pyinstaller库:

    pip install pyinstaller
    

    然后运行打包命令:

    pyinstaller -F -w -i flappy.ico flappy.py
    

    遇到的坑

    问题1

    开始我是在vscode终端powershell中运行打包命令,打包过程提示什么dll文件找不到。

    解决1

    直接打开cmdcd到项目所在的路径,再运行打包命令,就成功打包了,中间也不报错。

    问题2

    打包后的flappy.exe是在dist目录下,如果直接双击会报错:
    在这里插入图片描述

    方案2

    因为该游戏还关联有音乐和图片等游戏素材,你需要把它从文件夹中提出来,放到上一级目录,再次双击就可以正常运行了。

    问题3

    但这里又遇到了一个问题,这打包的游戏也太大了吧,逗我玩的吧??这才多大点游戏,游戏代码总共也不过500行,打包后却是228MB,这也太夸张了。

    方案3

    网上查了一下资料,说是anacondaminiconda的原因,打包时会引入一些不必要的模块,也就增大了程序的体积。推荐在pipenv创建的虚拟环境在打包。

    1. 安装pipenv
    pip install pipenv
    
    1. cd到项目路径,运行命令pipenv install创建虚拟环境。
    2. 运行命令pipenv shell激活虚拟环境
    3. 安装项目开发中用到的模块,我这里只用到了pygame,就只安装它了:
    pip install pygame
    
    1. 当然,pyinstaller也要重新在虚拟环境中安装:
    pip install pyinstaller
    
    1. 然后,重新运行打包命令:
    pyinstaller -F -w -i flappy.ico flappy.py
    

    pipenv创建的虚拟环境中打包后,程序的体积就小很多了,只有10.3MB(记得还是要把打包的程序从dist文件夹中拿出来,放到上一级目录)。

    温馨提示

    pipenv创建的虚拟环境保存路径是在用户目录(C:Usersxxx)下的.virtualenvs文件夹中。如果想删除虚拟环境,请使用命令:pipenv --rm

    引用参考

    https://zhuanlan.zhihu.com/p/57674343

  • 相关阅读:
    JQuery常用函数方法全集
    从零开始学习jQuery (三) 管理jQuery包装集
    Jquery选择器总结
    oracle常用函数总结
    普通Java类获取Spring的Bean的方法
    AtCoder Beginner Contest 173 A
    HDU 5974 A Simple Math Problem
    Codeforces Round #655 (Div. 2) B. Omkar and Last Class of Math
    Codeforces Round #655 (Div. 2) A. Omkar and Completion
    SWPU信息学院团体程序设计竞赛题解
  • 原文地址:https://www.cnblogs.com/ghgxj/p/14219086.html
Copyright © 2020-2023  润新知