是否有人知道如何修改使用Pyinstaller的.spec
创建的Makespec.py
文件,使其包含_MEIPASS2
Temp目录中的图像数据?我希望能够为我的exe添加一个图标。我已完成了here所写的内容,但我不知道如何在.spec
中添加数据。
我在.spec
文件的末尾添加了这一行:
a.datas += [('iconName.ico','DATA','C:\\Python26\\pyinstaller-1.5.1\\iconName.ico')]
答案 0 :(得分:11)
这是我用于名为Collector.spec
的简单python程序的spec文件("Collector.py"
)。
# -*- mode: python -*-
a = Analysis(['Collector.py'],
pathex=['C:\\Users\\vijay\\Python\\Collector'],
hiddenimports=[],
hookspath=None,
runtime_hooks=None)
a.datas += [('logo.png','C:\\Users\\vijay\\System\\icon\\logo.png','DATA')]
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='Collector.exe',
debug=False,
strip=None,
upx=True,
console=False , icon='C:\\Users\\vijay\\System\\icon\\logo.ico')
pyz变量上方的行"a.datas += .... "
保存了png图像的路径,该路径将显示在我的GUI应用程序的各个窗口上。
在exe变量中设置的"icon=...."
变量保存了ico图像的路径,该路径将作为桌面图标显示在Windows桌面上。
现在,您可以使用Max在主程序here中执行的操作Max,对我而言。
以下是我的脚本Collector.py
的片段,我已使用{{3}}代码:
Collector.py
现在,当我运行path = self.resource_path("logo.png")
icon = wx.Icon(path, wx.BITMAP_TYPE_PNG)
self.SetIcon(icon)
时,我同时拥有桌面图标和我的收藏家应用程序窗口的图标。
希望这有帮助!
答案 1 :(得分:3)
要向可执行文件添加图标,您需要使用以下内容:
python Makespec.py --icon=<FILE.ICO> yourprogram.py
或者,您可以将以下内容直接添加到规范文件
中的exe = EXE(...)
icon=<FILE.ICO>
这会将file.ico添加到可执行文件的资源(仅限Windows),它将显示为应用程序图标。您正在使用的a.datas附加内容将向内部资源添加一个图标,该图标可通过sys._meipass
在应用程序内访问。例如,您可以使用它在主窗口的顶部添加图标。
答案 2 :(得分:0)
此行应添加到a = Analysis(...)
和pyz = PYZ(a.pure)
行之间。