使用PyInstaller打包Flask+FlaskWebGUI独立应用时遇内部错误
解决Flask+FlaskWebGUI PyInstaller打包Internal Error问题
适配打包后的资源路径
打包后程序运行路径和开发环境不同,得加路径判断让Flask找到templates、static这类资源:import sys import os from flask import Flask from flaskwebgui import FlaskUI def get_resource_path(relative_path): try: # 打包后PyInstaller生成的临时目录 base_path = sys._MEIPASS except Exception: # 开发环境的当前目录 base_path = os.path.abspath(".") return os.path.join(base_path, relative_path) # 用上面的函数指定模板和静态文件路径 app = Flask(__name__, template_folder=get_resource_path("templates"), static_folder=get_resource_path("static")) # 你的路由和业务代码... if __name__ == "__main__": # 可指定端口避免冲突,比如5001 FlaskUI(app=app, server="flask", port=5001).run()使用正确的PyInstaller打包命令
确保资源文件和隐藏依赖都被正确打包,Windows用这条命令:pyinstaller --name myapp --onefile --add-data "templates;templates" --add-data "static;static" --hidden-import flaskwebgui --hidden-import waitress server.pyLinux或Mac环境下,把命令里的
;换成:即可。查看具体错误详情
别直接双击exe运行,打开命令行进入exe所在目录,执行./myapp.exe,这样能看到Internal Error背后的具体原因——比如资源文件缺失、依赖库未打包等,方便针对性修复。
内容的提问来源于stack exchange,提问作者Arthur Minas
相关产品推荐
相关产品推荐

