• Pyinstaller的生成exe图标


    背景介绍

    最近有个项目需要使用python做解析工具的后台,由于项目规模比较小,所以选用的是flask框架。但是后期由于没有环境,只能暂时生成exe来运行了。这里我采用了pyinstaller来将项目生成了exe,第一次尝试使用pyinstaller -F xx.py指令来生成,结果报错各种模块没有(has no module named **),这个是因为生成的exe,没有将pip安装的包(或者pycharm接口添加的模块(默认地址是项目地址/venv/lib/site-Packages))需要在指令中使用-p 将对应路径导入进去,另外执行的时候,无法找到对应的自己手写的py,发现是路径问题。由于我项目所有路径放在了项目路径static路径下,为了代码不改变就能找到,我使用–add-data static;static 将目录映射下,当然为了修改图标,还是用了-i xx.icon,最后的指令(需要将cmd环境切换到xx.py所在路径下)变为

    pyinstaller -F main.py --add-data static;static -p venv\Lib\site-packages -i main.ico
    
    • 1

    。生成的目标文件默认放到dist/下。需要将生成的xx.exe挪到xx.py的同级目录下执行(这个涉及到配置文件问题,当然也是我遇到的一个坑),但是就出现问题了,明明生成的exe图标是对的,一旦拷贝出去,生成的exe图标又变为默认的python图标。

    可能的原因及尝试

    一开始我以为是我拷贝有问题,但是经过几次拷贝之后应该可以排除这个选项。我开始怀疑是不是ico文件没有放到exe路径下,虽然可能性比较小,果然尝试几次之后发现问题果然没有消除。不得已看看网上有没有类似的情况,果然发现有一个相似的。

    问题解决及原因

    python3 pyinstaller打包生成exe程序 图标不改变,这篇博客介绍了如何使用pyinstaller的两种方式 -i 和 -icon的方式改变程序图标方法,他主要用来说明的是 -icon方式有可能图标没有改变的原因,实际上是windows资源管理器有缓存,导致图标没有改变,并给出了方法,通过改变大小图标的方式来刷新。我尝试了一下改变中图标,果然我的exe图标变了,可是我的原因不是因为使用了-icon的方式,而是因为我的图标太大了。为什么我的图标文件ico比较大呢?因为一开始我手里没有ico文件,只有对应的png文件,但是png文件不能直接用-i来生成作为exe的图标。于是我在在线图片转换网站png转ico。将手里的png转为ico文件,但是ico文件太小我怕看不清楚,于是将转换格式弄成最大的256*256.结果就成了以上的悲剧了。这个问题真是服了

  • 相关阅读:
    文档参考888
    记录一个教学的交互式系统的开发 —— 环境搭建
    WinUI 3 踩坑记:从创建项目到发布
    使用c++解压rar文件,基于UnRAR64,非命令行
    设计模式之命令模式(行为型)
    【PX4-AutoPilot教程-TIPS】PX4控制无人机在Gazebo中飞行时由于视角跟随无人机在画面中心导致视角乱晃的解决方法
    第三十六篇 Vue中使用Swiper
    26、Nerfies:Deformable Neural Radiance Fields
    c++开发面试题
    Java基础进阶IO流-文件复制
  • 原文地址:https://blog.csdn.net/wangyhwyh753/article/details/134018856