在利用python+html开发gui的过程中,遇到了打包后资源找不到的问题,因使用环境不同,程序的路径也不尽相同,在调试阶段可能没有问题,一但打包将会出现各种资源文件找不到的情况。

鉴于此,推荐大家获取安全路径来引用资源

def resource_path(relative_path):
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)

假设我们需要引用:index.html这个文件,当前这个文件的路径处于根目录,则可以使用上方函数获取到安全的绝对路径

然后使用此命令打包(注意,请根据实际环境使用)

pyinstaller -windowed -F -y -w -i favicon.ico --add-data "static;static" --add-data "view;view" --add-data "timg.gif;./" --add-data "index.html;./" app.py