Pyinstaller的生成exe图标

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 xx.py --addData static;static -p venv/lib/site-packages -i xx.ico。生成的目标文件默认放到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.结果就成了以上的悲剧了。这个问题真是服了

你可能感兴趣的:(随笔,1024程序员节)