如何将Python应用与最终用户的资产依赖捆绑在一起?



我有一个Tkinter应用程序,使用与.py文件相同的文件夹中包含的图像。pyinstaller script.py生成一个运行但不打开任何窗口的可执行文件。这是因为它正在查找不存在于同一子目录中的图像。当我将重要的图像复制到Pyinstaller创建的dist文件夹时,应用程序正常运行。

然而,我想有一个单一的可执行文件,我可以与其他用户共享,也不需要他们有图像存储。图像应该以某种方式与软件捆绑在一起,就像商业软件(通常)不要求您从程序本身单独下载资产一样。

是否有一种方法可以将Python程序和它们使用的资产捆绑到一键式应用程序中?

请注意,我在Linux Mint上使用Python 3。我也是一个新手,所以如果我在这里遗漏了一些明显的东西,请不要惊讶。

看来我已经解决了我自己的问题。

不是将映像包含在与main.py相同的文件夹中并使用由此产生的短相对文件路径来访问它们,而是将映像安装在系统目录树(我使用/home/$USER$/.$PROGRAMNAME$/)中的适当空间中,并让程序使用该目录的绝对路径访问文件。这将允许您将程序复制到您想要的计算机上的任何地方,并使其正常运行。

然而,如果你想和其他人共享它,你还需要包括一个安装脚本,将资源放在他们计算机上正确的目录中。

相关内容

最新更新