IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 使用pyinstaller打包flask项目 -> 正文阅读

[Python知识库]使用pyinstaller打包flask项目

1. 打包命令

pyinstaller app.py -D -w   #app.py指项目启动文件
-F:仅仅生成一个文件,不暴露其他信息,启动较慢。
-D:生成一个文件夹,里面是多文件模式,启动快。
-w:窗口模式打包,不显示控制台。
-c:跟图标路径,作为应用icon。
运行上述命令如果你打的包能成功运行说明你很幸运,如果报缺少模块 ,Invalid async_mode specified或者 
AttributeError: 'NoneType' object has no attribute 'isatty'等一些列错误,那说明你的打包环境需
要手动更改

2. 生成app.spec文件

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


block_cipher = None

SETUP_DIR = r'F:\Users\Administrator\Desktop\工作内容\11_viewer_后端'
a = Analysis(['app.py'],
             pathex=['F:\\Users\\Administrator\\Desktop\\工作内容\\11_viewer_后端'],
             binaries=[],
             datas=[(SETUP_DIR+'/static', 'static'), (SETUP_DIR+'/templates', 'templates')],
             hiddenimports=['sklearn.utils._typedefs','sklearn.neighbors._typedefs',
             'engineio.async_gevent ','gevent','pysqlite2', 'MySQLdb','flask_socketio',
             'pkg_resources.py2_warn','pkg_resources.markers', 'importlib_resources.trees',
             'engineio.async_drivers.threading', 'typing'],
             hookspath=[],
             hooksconfig={},
             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='app',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas, 
               strip=False,
               upx=True,
               upx_exclude=[],
               name='app')

2.1 Invalid async_mode specified

如上所示,如果你运行程序提示Invalid async_mode specified说明你用到flask_socketio的库,这时候你需要先把项目中async_mode 参数删除,然后在app.spec中的hiddenimports参数中添加’engineio.async_gevent’,‘gevent’,‘pysqlite2’,‘MySQLdb’,‘flask_socketio’,‘pkg_resources.py2_warn’,‘pkg_resources.markers’, ‘importlib_resources.trees’, 'engineio.async_drivers.threading’等参数再次运行pyinstaller app.spec命令打包即可。

2.2 AttributeError: ‘NoneType’ object has no attribute ‘isatty’

这个问题的主要原因是flask和werkzeug库的原因,题主本来用的是2.0.1版本,后来更新到2.0.3版本即可正常使用

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-14 23:50:39  更:2022-04-14 23:56:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:21:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码