时也会发生问题
我对py2exe也有同样的问题。
我用Tkinter写了一个脚本。GUI的图标位图是位于我的计算机(C:Usersfooimage)的特定目录中的ico图像"foogo .ico"。当我用py2exe创建一个可执行文件,并在另一台PC上使用这个可执行文件时,软件不工作,因为找不到图像
我正在寻找解决这个问题的最佳策略。
from Tkinter import *
class MainWindow(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("foo")
self.master.minsize(350, 150)
self.master.wm_iconbitmap(default='C:\Users\fooimage\foologo.ico')
if __name__=="__main__":
d = MainWindow()
d.mainloop()
我将这个脚本转换成Pyinstaller-2.01的可执行文件。
python pyinstaller.py --noconsole foo.py
一旦我有了可执行文件,如果我将fooologo .ico文件移动到另一个目录(或删除该文件),可执行文件就不起作用了。当我发送可执行文件
完整的规范文件:
# -*- mode: python -*-
a = Analysis(....)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries + [('your.ico', 'path_to_your.ico', 'DATA')],
a.zipfiles,
a.datas,
name=....
)
并在你的应用程序中使用它,像这样:
datafile = "your.ico"
if not hasattr(sys, "frozen"): # not packed
datafile = os.path.join(os.path.dirname(__file__), datafile)
else:
datafile = os.path.join(sys.prefix, datafile)
root = tk.Tk()
root.iconbitmap(default=datafile)