用pyinstaller打包生成的文件,一旦更改图标大小就会恢复默认图标,如何解决。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用pyinstaller打包生成的文件,一旦更改图标大小就会恢复默认图标,如何解决。相关的知识,希望对你有一定的参考价值。

只有在特定的大小时才能显示自己替换上去的图标。

参考技术A 在打包的时候,使用-i参数,指定ico图标就可以了。
例如:
-i <FILE.ico or FILE.exe,ID or FILE.icns>, --icon <FILE.ico or FILE.exe,ID or FILE.icns>
FILE.ico: apply that icon to a Windows executable.
FILE.exe,ID, extract the icon with ID from an exe.
FILE.icns: apply the icon to the .app bundle on Mac OS
X

用Pyinstaller生成可执行文件

(1)只有单程序时

当只需要将一个单独的程序(不需要用到其他模块或文件)打包成可执行文件exe时,例如一个简单的输出hello world的程序 helloworld.py。

在当前文件目录下打开cmd窗口(按住Shift + 右键,选择 在此处打开命令窗口),然后在cmd窗口中输入pyinstaller helloworld.py,然后按下回车。

命令执行后会在当前文件夹里生成一个叫 dist 的文件夹和一个叫 build 的文件夹,还有一个叫 helloworld.spec 的 spec 文件,在 dist 文件夹中会产生一个叫 helloworld 的文件夹,helloworld 文件夹中有一个叫做 helloworld.exe 的程序即为我们需要的exe文件。

点击 执行 helloworld.exe,出现以下结果

 

(2)需要用到其他文件如图片时,这里有两种方法。

第一种方法:比如这里有一个需要用到图片 "3.png" 的可视化窗口程序001.py

先按照(1)步骤打开cmd窗口输入 pyinstaller 001.py -w

在 dist文件夹中里生成一个001文件夹。-w的意思是去掉命令行窗口(由于001.py是一个可视化窗口程序,我们这里为了美观可以去掉命令行窗口),此时001文件夹里的001.exe是无法执行的。因为程序文件目录下缺少图片“3.jpg”,这里我们只需要将此图片“3.jpg”复制到001文件夹中,程序便可执行。

 

点击执行 001.exe,结果如下

 

第二种:同样先按照(1)步骤打开cmd窗口输入 pyinstaller 001.py ,在 dist文件夹中里生成一个001文件夹。前面已经说过,会在当前目录下产生一个001.spec的spec文件,打开spec文件编辑

 

 

找到datas参数,此时datas参数为空,我们只需要将datas=[] 修改成datas = [(\'3.png\',\'\')],

 

然后用在当前文件夹打开cmd窗口输入 pyinstaller 001.spec,执行此命令然后在001文件夹中就会有3.png文件

这个参数为一个列表 [(x,y)] ,x表示我们需要的文件路径,这里由于spec文件与图片3.png出于同一文件夹之下,可直接写成 \'3.png\' ,也可以写成绝对图片的绝对路径,如 \'E:\\\\Python文件\\/helloworld\\/新建文件夹\\\\3.png\',

y表示将需要的文件保存到什么文件中,这里y参数没有写表示直接保存在根目录001中,可以写成 \'.\\\\img\' ,就表示在001文件夹中创建一个img文件夹保存图片文件3.png

 

以上是关于用pyinstaller打包生成的文件,一旦更改图标大小就会恢复默认图标,如何解决。的主要内容,如果未能解决你的问题,请参考以下文章

用Pyinstaller把Python3.7程序打包成可执行文件exe

请问python的打包程序 pyinstaller 怎么用啊?

用Pyinstaller把Python3.7程序打包成可执行文件exe

Pyinstaller打包生成exe文件过大,四种常用处理方法集锦---嵌入式Python-01

Python执行pyinstaller打包生成的exe文件实战

pyinstaller打包生成的exe文件并使用python终止后台的exe程序运行