这个小工具竟然可以让我保持健康

2023-11-10

Part1背景

我有个同事今天跟我说, 他总是忘记喝水,这可怎么办?作为程序员的我们,本就每天久坐缺乏锻炼,如果再忘记喝水,那将会带来多么严重的后果,所以我决定为他做一个小工具来提醒他定时喝水&活动。

Part2前期准备

1下载依赖软件

pip install plyer

代码

from plyer import notification
import schedule,time

def notify():
    notification.notify(title="温馨提示",
                        message="喝水时间到,请起来活动活动! --O(∩_∩)O--",
                        timeout=10
                        )

schedule.every(10).seconds.do(notify)

while True:
    schedule.run_pending()
    time.sleep(1)

效果

提醒效果

为了演示方便,我们将定时任务设置为了 10s 一次,正式使用的时候我们设置为 1 个小时即可。

Part3打包为可执行文件

使用如上代码在打包时当发生了 BUGnotificationschedule 相关的包找不到。但是打包工具默认已经把依赖库打进了 exe,不知道为何还有问题,所以我们临时更换了定时任务和发送弹窗的包。

2软件选择

  • 打包工具选择:pyinstaller

  • 弹窗提醒选择:pywin32

3代码-new

import win32api,win32con,time
from apscheduler.schedulers.blocking import BlockingScheduler

def DrunkWater():
    win32api.MessageBox(0, "喝水时间到,起来活动活动吧!", "温馨提示",win32con.MB_OK)

# BlockingScheduler
scheduler = BlockingScheduler()
scheduler.add_job(DrunkWater, 'interval', minutes=1)


if __name__ == '__main__':

    while True:
        scheduler.start()
        time.sleep(1)
效果图

4打包

我们计划一个小时提醒一次,所以在打包的时候将定时任务时间改为 60 分钟即可。

安装 pyinstaller & pywin32

pip install pyinstaller
pip install pywin32

打包命令

直接在 py 文件所在路径下执行:pyinstaller -F -w demp.py即可。

-F:意为将代码打包成一个独立的可执行文件。
-w:意为以 noconsole 模式运行,即没有 cmd 黑框。

结果

打包结果

如上如,dist 中的文件就是我们打包后的可执行文件,其能够实现和 demo.py 一样的功能。

怎么样,你学废了吗?

以上就是今天的全部内容了,感谢您的阅读,我们下节再会。

往期推荐

经典实践 | 网速测速小工具(上)

经典实践 | 网速测速小工具(下)

Schedule | 轻量化的定时任务框架

Partial | 超有用的偏函数

PyWebIo | 快速构建web应用

5分钟带你了解Scrum

5分钟学会本地Pypi源搭建

FastApi-18-Token生成

FastApi-19-Token校验

FastApi-20-Token获取和使用

FastApi-21-APIRouter

点个

在看

你最好看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这个小工具竟然可以让我保持健康 的相关文章

  • 我想将我的 NEXT.js 项目链接到静态网站

    我有一个使用 HTML CSS 开发的网站 它是一个静态网站 但现在我使用 NEXT js 与 Strapi API 集成创建了一个博客项目 我的问题是如何将我的静态网站与我的 Next js 项目链接起来 我尝试使用链接标签 但没有用 i
  • 在 tkinter 和 python 中嵌套网格和框架

    我正在尝试在更大的网格结构中的框架内设置一个网格 我试图将其提炼为问题的最简单版本 from tkinter import Tk Frame Label Entry root Tk root geometry 800x800 frame1
  • 缩小 HTML、CSS 和 Javascript 是一个坏主意吗?

    维基百科定义缩小 http en wikipedia org wiki Minification 28programming 29 as 从源代码中删除所有不必要的字符而不改变其功能的过程 这些不必要的字符通常包括空格字符 换行符 注释 有
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • Python 3.4.3 tkinter - 程序在声明 IntVar 或任何其他 tkinter 数据类型时冻结

    上一主题 Python 3 4 tkinter checkbutton变量处理不起作用 响应 https stackoverflow com questions 33711472 python 3 4 tkinter checkbutton
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • 允许匿名用户浏览样式和图像文件夹

    我正在编写一个 ASP NET Web 应用程序 我有一个登录屏幕 上面有一些 CSS 样式和图像 我遇到了样式和图像未显示的问题 我在网上阅读 它说我需要在 Content 文件夹中放置一个 web config 我将以下内容添加到 we
  • 如何使用 Tkinter 创建等宽网格列?

    如何强制 Tkinter 应用程序窗口中的列宽度相等 tkdocs网站声明如下 每列的宽度 或每行的高度 取决于列或行中包含的小部件的宽度或高度 这意味着当绘制用户界面并将其划分为行和列时 您无需担心每列或行的宽度相等 或高度 大概 TkD
  • Python 3.x 中的 PIL ImageTk 等效项

    我正在使用 Tkinter 开发一个应用程序 它使用以下数据库png图标的图像文件 为了在应用程序中使用所述图像 我使用 PIL 打开它们Image open 运行它通过ImageTk PhotoImage函数 然后将其传递给小部件构造函数
  • Android - Java - 发送 facebook 聊天消息的意图(facebook 禁用 xmpp)

    Facebook 已弃用 xmpp API 有没有办法打开意图 或将数据传递到fb 以在Android设备上发送聊天消息 设备上安装的 Facebook 和 Messenger 应用 谢谢 您需要将 uri 传递给意图 这里10000572
  • 在简单的Python Tkinter程序中实现带有开/关功能的暗模式?

    我按照本教程创建了一个非常简单的文本编辑器应用程序 使用Python s Tkinter 我想做的是添加使用的选项checkbutton 所以当checked 文本编辑器的主题将更改为深色模式主题 并且何时unchecked 将返回默认的白
  • python ImportError:没有名为 Tkinter 的模块

    每次我尝试奔跑import matplotlib 我有错误ImportError No module named Tkinter 输出结果如下所示 Python 2 7 5 default Aug 2 2016 04 20 16 GCC 4
  • 如何访问 NFL 的 API?

    我一直在尝试访问或设法访问 NFL com 的数据 但尚未找到 这些网站上有公开文档 https api nfl com docs identity oauth2 index html 但这些文档不会告诉您如何获取客户端 ID 或客户端密钥
  • 是否可以下载网站的完整代码、HTML、CSS 和 JavaScript 文件? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否可以完全下载网站或查看其所有代码 例如 我知道您可以在浏览器中查看页面源代码 但是有没有办法下载所有网站代码 例如 HTML CSS
  • 在 Ruby 中创建带有静态页面的博客的最佳方法

    我刚刚访问了静态网站生成 http www ruby toolbox com categories static website generation html on 红宝石工具箱 http www ruby toolbox com 我不知
  • graphviz 嵌入 url

    我试图弄清楚如何生成带有超链接的图表 您可以单击以访问图表中每个节点 边的更多详细信息 我发现 graphviz 使用 URL 节点属性具有这种能力 使用我的测试文件 graph G node label N graph bb 0 0 21
  • Python Tkinter,停止线程函数

    我目前正在为 3D 打印机开发 GUI 并且遇到如何停止线程函数的问题 我希望能够单击 GUI 中具有另一个功能的按钮 该按钮将阻止线程函数通过串行端口发送 G 代码字符串 目前 该函数已合并线程 以允许在打印期间触发其他函数 我非常感谢有
  • 如何将文件夹中的所有图像添加到按钮(在我的框架中)[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想存储 jpg数组中文件夹中的图像 然后使用它们将其添加到我的 Python 框架中的按钮中 我正在 Python 3 4 3 中使用 t
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为

随机推荐

  • 【ElasticSearch】ElasticSearch 中使用衰减函数来完美你的搜索结果

    1 概述 转载 ElasticSearch 中使用衰减函数来完美你的搜索结果 最近的项目在原有的搜索需求增加功能 ElasticSearch 7 6 请注意 大版本不同可能参数不同 原有搜索 简单的标题 正文 全文索引 新加功能 在原有的基
  • 第十三章 网络命名空间(内核源码实现)--基于Linux3.10

    下载地址 http download csdn net detail shichaog 8620701 有两篇翻译博文 Lxc之二 网络设置 和 linuxnamespace 之使用 LXC文章中关于网络的设置是从用户空间配置的 从该文章可
  • 安装JDK7和Tomcat8.5后,Tomcat服务启动不了

    windows64位系统安装JDK7 0与Tomcat8 5 35需要注意的 一 JDK7 0和Tomcat8 5 35都要是64的版本 否则Tomcat服务会启动不了 JDK7 0如果不是64位 安装的时候会自动安装在C Program
  • Qt中正则表达式

    TOC 不积跬步 无以至千里 Qt中正则表达式 正则表达式 regular expression 就是在一个文本中匹配子字符串的一种模式 pattern 它可以简写为 regexp 一个regexp主要应用在以下几个方面 验证 一个rege
  • 数据结构c语言版如何运行程序,数据结构c语言怎么运行啊

    首先要确定你想采用线性表的顺序存储结构还是链式存储结构 以顺序存储结构为例 include include define ERROR 0 define OK 1 typedef int Status typedef int ElemType
  • pom 通用配置

  • Vue自定义指令directive(详细)

    个人网站 紫陌 笔记分享网 想寻找共同学习交流 共同成长的伙伴 请点击 前端学习交流群 1 什么是自定义指令 v 开头的行内属性 都是指令 不同的指令可以完成或实现不同的功能 除了内置指令外 Vue 也允许注册自定义指令 有的情况下 你仍然
  • 服务器上安装mpi4py

    服务器上安装mpi4py 尝试方法1 失败 python m pip install mpi4py 结果报错 缺失某一个库文件导致编译失败 解决方法 如果有权限的话可以sudo安装libopenmpi dev解决 否则只能手动编译 尝试方法
  • Python - 注释

    单行注释 comments 多行注释 comments comments 模块文档 1 用法 模块名 doc 2 显示代码块的简要说明 3 任何代码块 文件 类 函数 均可以有文档说明 不跨行 comments 跨行 comments co
  • OkHttp:自定义缓存

    设置OkHttp 的缓存策略 没网络直接读取缓存 并且设置缓存生命周期为 30s 自定义 Interceptor 请求策略 没有网络直接读取缓存 public class CacheRequestInterceptor implements
  • 目标检测算法——mmdetection下面的deformable-detr运行

    1 环境 包 版本 mmcv full 1 4 2 mmdet 2 19 1 torch 1 10 0 cu113 torchvision 0 11 1 cu113 2 文档 mmet官方文档 mmcv官方文档 源码下载 3 数据集 自定义
  • javascript的比较运算符

    比较运算符的隐士转换 这里只比较 字符串和 数字 对象的比较没有意义 一般返回的是false 234 lt 78 true 234 lt 78 false 234 lt 78 false 总结 只有当 comparison operator
  • Qt中的ui指针和this指针

    本博客中关于C 和QT 无特别说明开发环境为 Visual studio 2013 QT为5 9 9 特此说明 谨慎参考 希望能帮助到爱好者 首先看ui指针的定义 在mainwindow h中 private Ui MainWindow u
  • VisualStudio 无法登录

    文章转载自 https cloud tencent com developer article 1342617 如果遇到 visualStudio 无法登陆 可以看下我的方法 可能有用 尝试关闭代理 打开设置 网络 代理 关了它 试试 如果
  • zookeeper基本概念及使用场景

    zookeeper基本概念及使用场景 Zookeeper作为一种协调分布式应用高性能的调度服务 在ZooKeeper中 节点类型可以分为 持久节点 PERSISTENT 临时节点 EPHEMERAL 时序节点 SEQUENTIAL 具体在节
  • 机器学习项目的实验方法

    发现对于一些机器学习项目 在项目进行中往往会直接就开始编码实现 而没有一套完整的方法论和有实操性的流程 经过一些粗浅的研究 下面写出一些对于此的部分思考 或有参考借鉴之用 实验开始前 需要清楚研究什么 如何收集数据 打算怎样分析 1 研究目
  • Crunchfish发布XR Skeleton手势交互解决方案

    转自 https baijiahao baidu com s id 1677811512042412943 wfr spider for pc 移动交互解决方案开发商Crunchfish日前发布了名为XR Skeleton的手势控制技术 只
  • HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常

    在开发https应用时 你的测试服务器常常没有一个 有效的 SSL证书 在你的客户端连接测试服务器时 如下的异常会被抛出 javax net ssl SSLPeerUnverifiedException peer not authentic
  • CDN方式使用Vue,VantUI组件方式

    代码示例
  • 这个小工具竟然可以让我保持健康

    Part1背景 我有个同事今天跟我说 他总是忘记喝水 这可怎么办 作为程序员的我们 本就每天久坐缺乏锻炼 如果再忘记喝水 那将会带来多么严重的后果 所以我决定为他做一个小工具来提醒他定时喝水 活动 Part2前期准备 1下载依赖软件 pip