2

我正在使用它,当我启动 python 脚本时它工作正常

root.wm_iconbitmap('icon.ico')

但是在使用 cx_freeze 编译脚本并尝试执行编译后的文件后,我收到以下错误消息

File "D:\Programme\Python\Lib\tkinter\__init__.py", line 1553, in wm_iconbitmap
return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "icon.ico" not defined

所以找不到图标文件。如何配置我的 setup.py 以包含图标文件?

4

1 回答 1

3

我不知道你是否解决了这个问题(考虑到这个问题有多老),但我遇到了和你完全相同的问题,感谢你的问题,它实际上解决了我的问题。

为了包含您的图标文件(或您的 Python 程序调用的任何其他文件),您在setup.py脚本中创建一个名为的变量includefiles,然后在setup(代码中包含options

下面是setup.py我用来执行此操作的脚本。

import sys
from cx_Freeze import setup, Executable

base = None
if (sys.platform == "win32"):
    base = "Win32GUI"

exe = Executable(
        script = "Binary to Decimal Converter.py",
        icon = "python-xxl.ico",
        targetName = "Binary to Decimal Converter.exe",
        base = base
        )
includefiles = ["python-xxl.ico"]

setup(
    name = "Binary to Decimal Converter",
    version = "0.1",
    description = "Converts Binary values to Decimal values",
    author = "Neeraj Morar",
    options = {'build_exe': {'include_files':includefiles}},
    executables = [exe]
)

如您所见,includefiles由我的图标文件名组成(我应该提醒您将该文件与您的 Python 脚本放在同一目录中)。然后,在setup(我的代码中options = {'build_exe': {'include_files':includefiles}}

对我创建的变量的'include_files'调用。includefiles

本质上,您需要做的就是和我做同样的事情,但是不要将我的图标文件名放在您的图标文件名中;即includefiles = ["icon.ico"]

于 2014-01-21T15:18:52.220 回答