将NiceGUI应用程序打包成EXE文件

将NiceGUI应用程序打包成EXE文件

NiceGUI是一个简单易用的Python库,用于创建基于文本的用户界面。在本教程中,我们将学习如何将NiceGUI应用程序打包成可执行文件(EXE)。

步骤1:安装依赖项

首先,我们需要确保在打包应用程序之前安装必要的依赖项。在命令行中运行以下命令来安装所需的库:

pip install pyinstaller

步骤2:创建NiceGUI应用程序

接下来,我们需要创建一个NiceGUI应用程序my_login.py。以下是一个简单的示例:

#!/usr/bin/env python3
"""This is just a very simple authentication example.
"""
from fastapi.responses import RedirectResponsefrom nicegui import app, ui# in reality users passwords would obviously need to be hashed
passwords = {'user1': 'pass1', 'user2': 'pass2'}@ui.page('/')
def main_page() -> None:if not app.storage.user.get('authenticated', False):return RedirectResponse('/login')with ui.column().classes('absolute-center items-center'):ui.label(f'Hello {app.storage.user["username"]}!').classes('text-2xl')ui.button(on_click=lambda: (app.storage.user.clear(), ui.open('/login')), icon='logout').props('outline round')@ui.page('/login')
def login() -> None:def try_login() -> None:  # local function to avoid passing username and password as argumentsprint(passwords.get(username.value))if passwords.get(username.value) == password.value:app.storage.user.update({'username': username.value, 'authenticated': True})ui.open('/')else:ui.notify('Wrong username or password', color='negative')if app.storage.user.get('authenticated', False):return RedirectResponse('/')with ui.card().classes('absolute-center'):username = ui.input('Username').on('keydown.enter', try_login)password = ui.input('Password', password=True, password_toggle_button=True).on('keydown.enter', try_login)ui.button('Log in', on_click=try_login)ui.run(reload=False,native=True,storage_secret='THIS_NEEDS_TO_BE_CHANGED')

在上面的示例中,我们导入了nicegui库并创建了一个简单的NiceGUI应用程序。

在 ui.run 函数中,设置2个参数
reload = False 是打包必需
native = True ,程序启动时,就像普通的程序一样有独立的窗体。如果此参数为False,那么启动时就会触发浏览器打开页面

步骤3:打包应用程序

现在,我们可以使用PyInstaller工具将NiceGUI应用程序打包成EXE文件。然后在同目录下创建一个 build.py 文件,代码如下:

import os
import subprocess
from pathlib import Path
import nicegui
cmd = ['PyInstaller',
'my_login.py',#your main file with ui.run()
'--name','myapp',#name of your app
'--onefile',
'--windowed',
'--clean',
'--add-data',f'{Path(nicegui.__file__).parent}{os.pathsep}nicegui'
]
subprocess.call(cmd)

确保将my_login.py替换为您的NiceGUI应用程序的实际文件名。

--onefile参数将应用程序打包成单个EXE文件,而--windowed参数将应用程序显示为窗口应用程序,而不是命令行应用程序。
执行

python build.py

完成后,您将在同一目录下找到一个名为dist的文件夹,其中包含您的NiceGUI应用程序的EXE文件。
在这里插入图片描述

结论

通过遵循上述步骤,您可以轻松地将NiceGUI应用程序打包成EXE文件,以便在没有Python环境的计算机上运行。这为您的应用程序的分发和共享提供了便利。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/110596.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle 本地客户端连接远程 Oracle 服务端并使用 c# 连接测试

这里写自定义目录标题 前言Oracle 客户端安装先决条件下载 Oracle 客户端Oracle 客户端环境变量配置 PL/SQLPL/SQL 下载PL/SQL 配置 配置远程连接tnsnames.ora 文件配置 使用 PL/SQL 连接远程数据库使用 C# 远程访问 Oracle 数据库结语 前言 最近有一个需要使用本地的 Oracle …

融云 CallPlus SDK 上线!1V1 音视频、远程服务类应用的实现利器

点击报名,9 月 21 日融云直播课 近期,融云新一代音视频通话场景化 SDK CallPlus 将正式上线!关注【融云全球互联网通信云】了解更多 融云 CallPlus 完整封装了拨打、振铃、接听、挂断等整套呼叫流程,支持一对一及群组多人音视频通…

深度图相关评测网站

文章目录 1 单目/Stereo相关测评网站介绍12 单目/Stereo相关测评网站介绍23 单目/Stereo相关测评网站介绍3 1 单目/Stereo相关测评网站介绍1 https://vision.middlebury.edu/stereo/eval3/ 2 单目/Stereo相关测评网站介绍2 http://www.cvlibs.net/datasets/kitti/eval_stereo…

Kafka 简介 + 学习笔记

消息队列 先说明消息队列是什么: 亚马逊: 消息队列是一种异步的服务间通信方式,适用于微服务架构。消息在被处理和删除之前一直存储在队列上。每条消息仅可被一位用户处理一次。消息队列可被用于分离重量级处理、缓冲或批处理工作以及缓解高…

图的四种存储方式

图片来源:王道数据结构第六章 目录 邻接矩阵法 不带权的 带权的图 邻接矩阵法的性能分析 链接 对阵矩阵的压缩存储 邻接矩阵法的性质 邻接表法 链接 树的孩子表示法 性能分析 对比邻接矩阵 十字链表法 性能分析 邻接多重表 邻接多重表存储无向图 四种…

pandas读取excel,再写入excel

需求是这样的,从一个表读取数据,然后每次执行创建一个新表将值写入 读取这个表 写入到这个表 分别对应的是e、h列数据,代码如下: import pandas as pd import openpyxl import datetime dfpd.read_excel(rC:\Users\admin\Deskt…

【实训项目】“魔法”APP-模型爱好者线上线下交流平台

1.设计摘要 自从2018年万代把翻模厂商龙桃子,后国内的模型厂商就开始逐渐慢慢的从单纯的翻模转向做魔改合金模型,一是由于单纯的出翻模的利润太低,二是由于翻模被万代查水表的风险很大。于是,国内的一些厂商把眼光转向合金成品&a…

Java Predicate用法

Java Predicate用法 无需写sql.只要拼接条件就行 Java Predicate用法

多线程(额外扩展)(面试会用)

1 线程状态 1.1 状态介绍 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程 状态被定义在了java.lang.Thread.State枚…

Git中smart Checkout与force checkout

Git中smart Checkout与force checkout 使用git进行代码版本管理,当我们切换分支有时会遇到这样的问题: 这是因为在当前分支修改了代码,但是没有commit,所以在切换到其他分支的时候会弹出这个窗口, 提示你选force checkout或者smart checko…

【前端】CSS技巧与样式优化

目录 一、前言二、精灵图1、什么是精灵图2、为什么需要精灵图3、精灵图的使用①、创建CSS精灵图的步骤1)、选择合适的图标2)、合并图片3)、设置背景定位 ②、优化CSS精灵图的技巧1)、维护方便2)、考虑Retina屏幕3&…

国标GB28181安防监控视频平台EasyGBS新功能:批量绑定角色与取消设备

国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台,支持多路设备同时接入,并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。国标视频监控平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音…

利用SSL证书的SNI特性建立自己的爬虫ip服务器

今天我要和大家分享一个关于自建多域名HTTPS爬虫ip服务器的知识,让你的爬虫ip服务器更加强大!无论是用于数据抓取、反爬虫还是网络调试,自建一个支持多个域名的HTTPS爬虫ip服务器都是非常有价值的。本文将详细介绍如何利用SSL证书的SNI&#…

uniapp 实现地图距离计算

在uniapp中实现地图距离计算可以借助第三方地图服务API来实现。以下是一种基本的实现方式: 注册地图服务API账号:你可以选择使用高德地图、百度地图等提供地图服务的厂商,注册一个开发者账号并获取API密钥。 安装相关插件或SDK:根…

使用docker、docker-compose部署微服务

使用docker、docker-compose部署微服务 一、使用docker部署1、准备2、上传jar包3、编写dockerfile文件3、构建镜像和容器 二、使用docker-compose部署1、准备服务的jar包和dockerfile文件2、编写docker-compose.yml文件3、docker-compose常用命令(1)、前…

Live800:在线沟通有这些新趋势

近年来,随着互联网技术的快速发展,越来越多的企业开始采用在线客服系统,以解决与客户沟通的问题。这项技术的出现,不仅改变了企业与客户之间沟通的方式,也为未来在线沟通提供了新的方向。 在线客服系统的特点主要有以下…

3D模型轻量化引擎HOOPS平台助力3D开发实现大模型轻量化渲染、3D模型格式转换!

一、包含的软件开发工具包 HOOPS Web平台帮助开发人员构建基于Web的工程应用程序,提供高级3D Web可视化、准确快速的CAD数据访问和3D数据发布。 HOOPS Web平台包括三个集成软件开发工具包 (SDK): (1)Web端3D可视化引擎 HOOPSCom…

【技术】SpringBoot Word 模板替换

SpringBoot Word 模板替换 什么是 Word 模板替换如何实现 Word 模板替换 什么是 Word 模板替换 模板一般是具有固定格式的内容,其中一部分需要替换。Word 模板通俗的讲是以 Word 的形式制作模板,固定格式和内容,然后将其中的一部分数据替换掉…

UG\NX二次开发 代工分享的“单个体XY排料工具”源码

文章作者:代宇(Q:873058673) 简介: 单个体XY排料,昨天代工在开发群里分享了一个排料的视频,我觉得挺有意思,就私聊要来了源码,经过作者同意可以分享给大家。请欣赏: 效果: 代码: //单个体XY排料 代工QQ:873058673 //-------------------------------…

ssm+vue中国咖啡文化宣传网站源码和论文

ssmvue中国咖啡文化宣传网站源码和论文078 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 课题背景 随着时代的发展和人们生活理念的进一步改变,咖啡业已经成为了全球经济中发展最迅猛的产业之一。…