我有一个Tkinter应用程序,使用与.py
文件相同的文件夹中包含的图像。pyinstaller script.py
生成一个运行但不打开任何窗口的可执行文件。这是因为它正在查找不存在于同一子目录中的图像。当我将重要的图像复制到Pyinstaller创建的dist
文件夹时,应用程序正常运行。
然而,我想有一个单一的可执行文件,我可以与其他用户共享,也不需要他们有图像存储。图像应该以某种方式与软件捆绑在一起,就像商业软件(通常)不要求您从程序本身单独下载资产一样。
是否有一种方法可以将Python程序和它们使用的资产捆绑到一键式应用程序中?
请注意,我在Linux Mint上使用Python 3。我也是一个新手,所以如果我在这里遗漏了一些明显的东西,请不要惊讶。
看来我已经解决了我自己的问题。
不是将映像包含在与main.py
相同的文件夹中并使用由此产生的短相对文件路径来访问它们,而是将映像安装在系统目录树(我使用/home/$USER$/.$PROGRAMNAME$/
)中的适当空间中,并让程序使用该目录的绝对路径访问文件。这将允许您将程序复制到您想要的计算机上的任何地方,并使其正常运行。
然而,如果你想和其他人共享它,你还需要包括一个安装脚本,将资源放在他们计算机上正确的目录中。