Eclipse Py2Exe&;Img2Py-编译后缺少图像

Eclipse Py2Exe&;Img2Py-编译后缺少图像,eclipse,wxpython,pydev,py2exe,Eclipse,Wxpython,Pydev,Py2exe,我甚至不知道从哪里开始描述我的问题 我有一个项目,其中使用了大量的图像。工具栏、菜单、列表等等。我正在用PyDev在Eclipse中开发。我能够在Eclipse中成功地运行我的程序,但需要将其编译为可执行文件,以便部署 当我第一次尝试使用Py2Exe编译时,没有加载任何图像,因为它们使用的是相对路径。我在这里找到了一些信息:关于如何将相对路径转换为绝对路径的信息,但我选择不走这条路,因为它需要在所有图像路径上添加一个额外的包装器 相反,我选择使用Img2Py将所有图像转换为资源文件。我现在有一个

我甚至不知道从哪里开始描述我的问题

我有一个项目,其中使用了大量的图像。工具栏、菜单、列表等等。我正在用PyDev在Eclipse中开发。我能够在Eclipse中成功地运行我的程序,但需要将其编译为可执行文件,以便部署

当我第一次尝试使用Py2Exe编译时,没有加载任何图像,因为它们使用的是相对路径。我在这里找到了一些信息:关于如何将相对路径转换为绝对路径的信息,但我选择不走这条路,因为它需要在所有图像路径上添加一个额外的包装器

相反,我选择使用Img2Py将所有图像转换为资源文件。我现在有一个资源文件夹,其中包含应用程序所需的每个图像的.py文件。使用Py2Exe重新编译时,我能够验证library.bin zip文件是否包含我的资源文件夹以及每个图像对应的.pyo文件。启动可执行文件时,大多数图像不会显示。例如,在“我的工具栏”上,启用的状态图像正确显示,而禁用的状态图像丢失。在我的列表中,我的所有图像都不显示。在菜单中,图像正确显示

在我的工具栏类中,如果我不使用禁用的图像,而是允许wx使用其默认行为将启用的图像显示为灰色,则禁用状态将显示,但这对我的列表图标没有帮助。我甚至不确定在这里显示什么代码是相关的——在Eclipse中一切都正常工作,只有在使用Py2Exe编译之后,我才会遇到这些问题


如有任何建议,将不胜感激。提前感谢,

我通过在调用img2py时添加
append=True
选项并删除图像模块名称中的下划线,克服了这一问题。我不明白为什么这会产生影响,因为这些图片的名字中也有下划线,但这似乎让我绕过了这个问题。生成图像资源的代码如下所示:

from wx.tools.img2py import img2py
from glob import glob

for f in glob('*.png'):
  o = f.replace('-', '').replace('_', '').replace('.png', '')
  img2py(f, 'Images.py', append=True, imgName=o, icon=True)
希望这对将来的其他人可能有用。我知道我最终还是会提到它