python 利用Pyinstaller打包Web项目


Posted in Python onOctober 23, 2020

最近需要用python打包一个单页面网页demo,于是准备用python包pyinstaller来打包程序。网上搜索了一下,大部分教程都是打包非web项目,这里分享一下打包简单网页demo的过程。

系统环境:win10+python3.6

一、安装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.如果不是单文件项目,而是有多级目录(包含一些依赖的静态资源),需要自定义打包

本文以打包自己的单页面网页demo为例,各级目录结构如下:

python 利用Pyinstaller打包Web项目

python 利用Pyinstaller打包Web项目

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

pyi-makespec -D -w main.py

注:

-w 参数是为了保证不会产生黑色控制台窗口

-D 参数生成一个文件目录包含可执行文件和相关动态链接库和资源文件等(默认选项,也可以不加)

生成的 main.spec 文件如下:

python 利用Pyinstaller打包Web项目

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

python 利用Pyinstaller打包Web项目

2.3执行打包命令:

pyinstaller main.spec

成功!

最终结果:

python 利用Pyinstaller打包Web项目

python 利用Pyinstaller打包Web项目

 3.一些报错

①执行打包命令时,报错:RecursionError: maximum recursion depth exceeded

原因:应该是python库递归遍历太深,超过了python预设的递归深度,导致出现 “RecursionError: maximum recursion depth exceeded" 的错误

解决办法:在spec文件里设置一个大点的递归深度,在该文件第二行,添加代码如下:

import sys
sys.setrecursionlimit(50000)

②python打包pywebview时,可能会报错:WebBrowserInterop.x64.dll not found

原因:这是由于系统没有找到WebBrowserInterop.x64.dll

解决办法:将WebBrowserInterop.x64.dll文件的所在路径添加到系统环境变量里即可!

WebBrowserInterop.x64.dll文件的所在路径:

python 利用Pyinstaller打包Web项目

添加到系统环境变量:

python 利用Pyinstaller打包Web项目

4.注意事项

①如果生成的exe文件双击无法正常运行,也没有报错提示,此时,如果想看具体报错信息,就不要直接双击执行,而是在控制台下执行。如果这样还是无法看到报错信息,则在打包软件时不要使用 -w 参数,这样在运行生成的exe时就可以弹出黑色控制台窗口,从而就可以在黑色控制台上面看到报错信息

②如果要减小打包体积,可以使用conda创建python虚拟环境,然后只安装需要的包,最后再进行打包,这样体积会大大减小

以上就是python 利用Pyinstaller打包Web项目的详细内容,更多关于python 打包项目的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python实现替换文件中指定内容的方法
Mar 19 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
pandas数据处理进阶详解
Oct 11 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
python3 logging日志封装实例
Apr 08 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
python实现银行账户系统
Feb 22 Python
python logging模块的使用详解
Oct 23 #Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 #Python
Python中免验证跳转到内容页的实例代码
Oct 23 #Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 #Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 #Python
详解python模块pychartdir安装及导入问题
Oct 22 #Python
Python实现自动装机功能案例分析
Oct 22 #Python
You might like
牡丹941资料
2021/03/01 无线电
php中的实现trim函数代码
2007/03/19 PHP
简单的php 验证图片生成函数
2009/05/21 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
linux下python抓屏实现方法
2015/05/22 Python
Django框架反向解析操作详解
2019/11/28 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
C#中的验证控件有几种
2014/03/08 面试题
妇产科护士自我鉴定
2013/10/15 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
立志成才演讲稿
2014/09/04 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
新年晚会主持词开场白
2015/05/28 职场文书