【Python】Python项目打包发布(二)(基于Pyinstaller打包PyWebIO项目)

Python项目打包发布汇总

【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目)
【Python】Python项目打包发布(二)(基于Pyinstaller打包PyWebIO项目)
【Python】Python项目打包发布(三)(基于Aardio打包多目录项目)
【Python】Python项目打包发布(四)(基于Nuitka打包PySide6项目)
【Python】Python项目打包发布(五)(制作Windows安装包)

一、说明

关于Pyinstaller基础配置,可以查看Python打包发布(一)(基于Pyinstaller打包多目录项目)。

PyWebIO属于国产Pthon第三方库,官方文档及示例比较齐全,并且已经对Pyinstaller打包做了适配。基于PyWebIO可以快速开发Python前端界面,方便展示。

PyWebIO提供了一系列命令式的交互函数来在浏览器上获取用户输入和进行输出,将浏览器变成了一个“富文本终端”,可以用于构建简单的Web应用或基于浏览器的GUI应用。
PyWebIO还可以方便地整合进现有的Web服务,让你不需要编写HTML和JS代码,就可以构建出具有良好可用性的应用。

PyWebIO官网:https://pywebio.readthedocs.io/zh_CN/latest/

二、 Pyinstaller打包PyWebIO项目

1、PyWebIO项目说明

项目结构:

- Project
	- app.py

app.py结构

# -*- coding:utf-8 -*-
from pywebio import start_server
from pywebio.input import *
from pywebio.output import *
import webbrowser
import http.client
import json
from urllib.parse import quote_plus
from math import ceil, floor

def geocode():
	....
	return 
def main():
	...
if __name__ == '__main__':
    webbrowser.open_new('http://localhost:8080')
    start_server(main, debug=True, port=8080)

运行结果:

【Python】Python项目打包发布(二)(基于Pyinstaller打包PyWebIO项目)_第1张图片

程序说明

使用Pywebio结合百度地图api进行2000大地坐标系分度带计算。
通过调用webbrowser,可以使打包后的PyWebIO项目直接打开浏览器运行。

2、打包流程

  • 生成spec文件
pyi-makespec app.py 
  • 修改spec文件
    导入pyinstaller_datas,并填入datas
# -*- mode: python ; coding: utf-8 -*-

from pywebio.utils import pyinstaller_datas
block_cipher = None
a = Analysis(['app.py'],
             pathex=[],
             binaries=[],
             datas=pyinstaller_datas(),
             hiddenimports=[],
             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,
          a.binaries,
          a.zipfiles,
          a.datas,  
          [],
          name='app',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )
  • 打包
    pyinstaller -F app.spec

三、参考文献

把pywebIO用pyinstaller打包

四、源代码

源代码下载:Pywebio+百度地图api进行2000大地坐标系分度带计算

你可能感兴趣的:(#,Python,面向百度编程,python,开发语言)