flask打包单一可执行程序,包含静态资源

flask示例代码

import os
import sys

from flask import Flask, render_template
from flask_cors import CORS


# 获取资源路径
def resource_path(relative_path):
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)
    return os.path.join(os.path.abspath("."), relative_path)


app = Flask(__name__, static_url_path="", static_folder=resource_path('static'),
            template_folder=resource_path("templates"))

# 允许全局跨域配置
CORS(app, supports_credentials=True)


@app.route('/')
def index():
    return render_template('index.html')


app.run()

pyinstaller打包示例代码

from PyInstaller.__main__ import run

if __name__ == '__main__':
    opts = ['main.py',  # 主程序文件
            '-n flask',  # 可执行文件名称
            '-F',  # 打包单文件
            # '-w', #是否以控制台黑窗口运行
            r'--icon=E:/图标/leaves_16px_1218386_easyicon.net.ico',  # 可执行程序图标
            '-y',
            '--clean',
            '--workpath=build',
            '--add-data=templates;templates',  # 打包包含的html页面
            '--add-data=static;static',  # 打包包含的静态资源
            '--distpath=build',
            '--specpath=./'
            ]

    run(opts)

执行这段打包代码即可。templates目录放置的是html模板文件,static目录放置的是静态资源。具体目录和路径等配置根据自己项目调整。
运行结果示例:
在这里插入图片描述
本示例使用的是anaconda环境中的python 3.7,如果使用单独安装的python环境,打包体积会小一些。

注意

pyinstaller打包代码执行之前要确保pyinstaller已经正确安装,一般pip install pyinstaller即可正常安装pyinstaller。

参考资料

pyinstaller参考配置官网地址:https://pyinstaller.readthedocs.io/en/stable/usage.html#options

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值