python打包flask web项目

当我们需要将python写的flask web项目打包成exe文件发布时,推荐使用pyinstaller工具。

系统环境:win10 + python3.7.5

一、安装pyinstaller

pip install pyinstaller

二、打包项目

1.如果是单文件项目,pyinstaller可以通过简单的命令进行python代码的打包工作,其命令为:

pyinstaller -option ***.py

 1.1参数option可以有多个值:

    -F : 指定打包后只生成一个exe格式的文件
    -D : 生成一个文件目录包含可执行文件和相关动态链接库和资源文件等(默认选项)
    -c : –console, –nowindowed 使用控制台,无界面(默认选项)
    -w : –windowed, –noconsole 使用窗口,无控制台

 1.2注意

    ①再增加一个命令参数 -w 可以保证点击生成的exe文件不会弹出黑色控制台窗口

              ②不加 -F 参数会生成一堆文件,但是运行速度快; 加-F参数生成一个exe文件,运行起来慢

 

2.如果不是单文件项目,而是有多级目录(包含一些依赖的静态资源),需要自定义打包

2.1为了进行自定义配置打包,需要先输出配置文件.spec文件,执行命令:

pyi-makespec skr.py

生成的 skr.spec 文件如下:

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['skr.py'],
             pathex=['D:\\project\\skr'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          [],
          exclude_binaries=True,
          name='skr',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               upx_exclude=[],
               name='skr')

2.2为了是使打包生成后的exe文件可以加载css、js、图片等静态资源,这里需要添加依赖路径(注意:要保证自己 html 里面加载静态资源的路径是相对路径才行)。具体来说,此类资源文件的打包需要设置Analysis的datas,如下:

datas=[('./static','static'),('./templates','templates')],

如果希望exe文件打开后无控制台的黑窗口,可以将console设置为False

 

 

  • 9
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值