python 利用Pyinstaller打包Web项目

 更新时间:2020年10月23日 09:01:26   作者:蛋片鸡  
这篇文章主要介绍了python 利用Pyinstaller打包Web项目,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

最近需要用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为例,各级目录结构如下:

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

pyi-makespec -D -w main.py

注:

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

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

生成的 main.spec 文件如下:

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

2.3执行打包命令:

pyinstaller main.spec

成功!

最终结果:

 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文件的所在路径:

添加到系统环境变量:

4.注意事项

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

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

以上就是python 利用Pyinstaller打包Web项目的详细内容,更多关于python 打包项目的资料请关注脚本之家其它相关文章!

相关文章

  • 通过实例简单了解Python中yield的作用

    通过实例简单了解Python中yield的作用

    这篇文章主要介绍了通过实例简单了解Python中yield的作用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • pymongo实现控制mongodb中数字字段做加法的方法

    pymongo实现控制mongodb中数字字段做加法的方法

    这篇文章主要介绍了pymongo实现控制mongodb中数字字段做加法的方法,涉及Python使用pymongo模块操作mongodb数据库字段的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python编程羊车门问题代码示例

    python编程羊车门问题代码示例

    这篇文章主要介绍了python编程“羊车门”问题代码示例,初步接触,仅供参考。不足之处,欢迎指出。
    2017-10-10
  • Python中ROC曲线绘制

    Python中ROC曲线绘制

    大家好,本篇文章主要讲的是Python中ROC曲线绘制,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Python3中条件控制、循环与函数的简易教程

    Python3中条件控制、循环与函数的简易教程

    这篇文章主要给大家介绍了关于Python3中条件控制、循环与函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • Python把对应格式的csv文件转换成字典类型存储脚本的方法

    Python把对应格式的csv文件转换成字典类型存储脚本的方法

    今天小编就为大家分享一篇Python把对应格式的csv文件转换成字典类型存储脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • pytorch分类模型绘制混淆矩阵以及可视化详解

    pytorch分类模型绘制混淆矩阵以及可视化详解

    混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法,下面这篇文章主要给大家介绍了关于pytorch分类模型绘制混淆矩阵以及可视化的相关资料,需要的朋友可以参考下
    2022-04-04
  • Python使用Tkinter实现滚动抽奖器效果

    Python使用Tkinter实现滚动抽奖器效果

    Tkinter 是 Python 的标准 GUI(Graphical User Interface,图形用户接口)库,Python 使用 Tkinter 可以快速地创建 GUI 应用程序。这篇文章主要介绍了Python使用Tkinter实现滚动抽奖器,需要的朋友可以参考下
    2020-01-01
  • 用python将word文档合并实例代码

    用python将word文档合并实例代码

    大家好,本篇文章主要讲的是用python将word文档合并实例代码,感兴趣的同学赶快老看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • python 自动提交和抓取网页

    python 自动提交和抓取网页

    最近在研究怎么样做个自动发帖器,要完成这个工具难度蛮大的,验证码就是一个大问题(还没有想到解决办法哦,不管了),先要解决的是如何抓取,分析和提交页面的问题。
    2009-07-07

最新评论