使用python编写简单的小程序编译成exe跑在win10上


Posted in Python onJanuary 15, 2018

每天的工作其实很无聊,早知道应该去IT公司闯荡的。最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅。

人的精力毕竟是有限的,所以不一定在每个整点都可以及时去做这项工作。灵机一动,这种一丝不苟的活儿应该让计算器来做,由它来在每个整点来告诉我该去工作了。

说干就干,平时只用c#写过小程序,由于办公电脑上是公用的,所以没有想自己电脑一样装有visual studio,索性心一横,用python试试吧。总是听说那句大名鼎鼎的“人生苦短,我用python”。这一次就当是我的入门吧。

我的需求其实很简单,让程序获取当前的时间,然后使用间隔为1秒的timer去重复刷新时间,当时间滚动到整点的时候,且该整点在我们预期区间[7-23]点内,我就让计算机发出蜂鸣声来提示该去查客流了。

通过简单的查阅,我决定使用tkinter来做UI,我对UI的要求不高,本身的设计也很糟糕,所以只是要在窗口上放一个Lable,让这个Lable的text按秒来显示当前的时间。

第一步,使用tkinter绘制窗体,在该窗体上增加一个Lable,效果图就是下面这样:

使用python编写简单的小程序编译成exe跑在win10上

接下来,第二步,使用一个timer来计时,interval 设置为1000ms,在start()时间中实现,获取当前时间值,重新赋到Lable的text属性上,这样就实现了类似时钟的滚动效果。效果图如下:

使用python编写简单的小程序编译成exe跑在win10上

前两步都顺利实现了,代码方面就剩下一步了。最后一步要做的就是,在start()事件时候,判断获取的当前时间是否是整点,如果是预期的整点,就让电脑蜂鸣一阵,以提醒我该去工作了。这里面主要就一个新功能,怎样使得计算器蜂鸣。

附代码如下(python 2.7):

# -*- coding: utf-8 -*-
from tkinter import *      # 导入 Tkinter 库
import time,datetime,winsound,threading
root = Tk() 
lbl = Label(root,text ="hello,world",width = 30,height = 2)
def tick():
  global timer
  timer = threading.Timer(1.0,tick,"")
  currenttime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
  lbl.config(text = currenttime)  
  currenttime1 = datetime.datetime.now()
  if currenttime1.minute == 0 and currenttime1.second == 0 and currenttime1.hour > 5 and currenttime1.hour < 23:
    winsound.Beep(1000,5000)
    #其中600表示声音大小,1000表示发生时长,1000为1秒
  lbl.pack() # 将小部件放置到主窗口中
  timer.start()
if __name__ == "__main__":
  timer = threading.Timer(1.0,tick,"")
  timer.start()
root.mainloop()

前面这些都不是我今天记录的重点。这篇文章的记录重点在尝试将py代码编译成exe文件。

安装pyinstaller

到指定目录下使用pyinstaller来讲py文件编译成exe

首先完成第一步,在安装python后,完成环境变量的配置,这点我在这里不赘述,请在博客园上查。这里简单介绍下在cmd上安装pyinstaller。为啥用它呢?请百度,我现在也一知半解。安装命令:pip install pyinstaller,具体安装过程如下截图:

使用python编写简单的小程序编译成exe跑在win10上

接下来我们来做第二步。我今天在这一步上走了很多弯路,最终在查阅众多资料后,得到了一个勉强可用的折中方法。如果大家有更好的方法,请不吝指教。

我们把写好的py文件,拷贝到如下路径:

使用python编写简单的小程序编译成exe跑在win10上

使用如下命令进行编译成exe文件:

pyinstaller -F -w yourfilename.py

使用python编写简单的小程序编译成exe跑在win10上

使用python编写简单的小程序编译成exe跑在win10上

成功编译生成exe文件,生成的文件结构如图:

使用python编写简单的小程序编译成exe跑在win10上

至此,我完成了今天的工作。使用简单的python编写一个定时提醒程序。

这里我记录两个疑问:

第一,感觉py文件经pyinstaller编译出来的exe文件偏大,足有8兆多,这是为什么?

第二,如果不在指定目录下编译成exe,就不会成功,这是为什么?附带失败截图:

使用python编写简单的小程序编译成exe跑在win10上

最后,在这里留下一点未来可以扩展的地方,下次尝试使用tts技术,实现整点报时提醒,毕竟现在的蜂鸣嘟嘟声,实在是有点傻。

Python 相关文章推荐
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
Python实现二叉树的最小深度的两种方法
Sep 30 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
Selenium alert 弹窗处理的示例代码
Aug 06 Python
Pycharm常用快捷键总结及配置方法
Nov 14 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
如何利用python正则表达式匹配版本信息
Dec 09 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 Python
python 自动刷新网页的两种方法
Apr 20 Python
python逆向入门教程
Jan 15 #Python
Python3一行代码实现图片文字识别的示例
Jan 15 #Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 #Python
selenium python浏览器多窗口处理代码示例
Jan 15 #Python
100行python代码实现跳一跳辅助程序
Jan 15 #Python
tornado 多进程模式解析
Jan 15 #Python
200 行python 代码实现 2048 游戏
Jan 12 #Python
You might like
Yii实现文章列表置顶功能示例
2016/10/18 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
jquery带动画效果幻灯片特效代码
2015/08/27 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
python实现简单的TCP代理服务器
2014/10/08 Python
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python中while循环语句用法简单实例
2015/05/07 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Python编程求质数实例代码
2018/01/31 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
爸爸的花儿落了教学反思
2014/02/20 职场文书
新农村建设标语
2014/06/24 职场文书
班主任2015新年寄语
2014/12/08 职场文书
销售督导岗位职责
2015/04/10 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书