背景
我有个同事今天跟我说, 他总是忘记喝水,这可怎么办?作为程序员的我们,本就每天久坐缺乏锻炼,如果再忘记喝水,那将会带来多么严重的后果,所以我决定为他做一个小工具来提醒他定时喝水&活动。
前期准备
下载依赖软件
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
个小时即可。
打包为可执行文件
使用如上代码在打包时当发生了 BUG
,notification
和 schedule
相关的包找不到。但是打包工具默认已经把依赖库打进了 exe
,不知道为何还有问题,所以我们临时更换了定时任务和发送弹窗的包。
软件选择
- 打包工具选择:
pyinstaller
- 弹窗提醒选择:
pywin32
代码-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) 复制代码
网络异常,图片无法展示
|
打包
我们计划一个小时提醒一次,所以在打包的时候将定时任务时间改为 60
分钟即可。
安装 pyinstaller & pywin32
pip install pyinstaller pip install pywin32 复制代码
打包命令
直接在 py
文件所在路径下执行:pyinstaller -F -w demp.py
即可。
-F
:意为将代码打包成一个独立的可执行文件。
-w
:意为以noconsole
模式运行,即没有cmd
黑框。
结果
网络异常,图片无法展示
|
如上如,dist
中的文件就是我们打包后的可执行文件,其能够实现和 demo.py
一样的功能。
怎么样,你学废了吗?
以上就是今天的全部内容了,感谢您的阅读,我们下节再会。