Python tkinter和exe打包的方法


Posted in Python onFebruary 05, 2020

爬虫程序的核心,爬虫天眼查的公司信息类TianYanCha已经完成了,并且验证可以工作,但是给不是专业方面的人用的话,还要安装Python解释器,还没有界面是挺麻烦的,于是就想写一个简单的界面,然后打包成可执行程序给女票用。

##tkinter界面

由于我的界面要求很简单,只是输入两个文件路径,一个实时输出信息的文本框,于是没有选择其他的Python界面扩展,只是选择Python的事实界面库—tkinter。

界面如下:

class Application(tk.Frame):
  def __init__(self, master=None):
    tk.Frame.__init__(self, master)
    self.pack()
    self.createWidgets()
  def __del__(self):
    print('del tianyanche')
    root.destroy
  def createWidgets(self):
    self.labelDest = tk.Label(self)
    self.labelDest["text"] = '来源路径:'
    self.labelDest.grid(row=0, column=0)
    self.contentDest = tk.StringVar()
    self.contentDest.set('./work/all.txt')
    self.entryDest = tk.Entry(self)
    self.entryDest["textvariable"] = self.contentDest
    self.entryDest.grid(row=0, column=1)
    self.labelSuc = tk.Label(self)
    self.labelSuc["text"] = '成功路径:'
    self.labelSuc.grid(row=1, column=0)
    self.contentSuc = tk.StringVar()
    self.contentSuc.set('./work/suc.txt')     #设置界面的默认值
    self.entrySuc = tk.Entry(self)
    self.entrySuc["textvariable"] = self.contentSuc
    self.entrySuc.grid(row=1, column=1)
    self.labelFail = tk.Label(self)
    self.labelFail["text"] = '失败路径:'      #设置界面的默认值
    self.labelFail.grid(row=2, column=0)
    self.contentFail = tk.StringVar()
    self.contentFail.set('./work/fail.txt')    #设置界面的默认值
    self.entryFail = tk.Entry(self)
    self.entryFail["textvariable"] = self.contentFail
    self.entryFail.grid(row=2, column=1)
    self.buttonStart = tk.Button(self, text = '开始')
    self.buttonStart['command'] = self.start
    self.buttonStart['fg'] = 'green'
    self.buttonStart.grid(row=3, column=0)
    self.quit = tk.Button(self, text="停止", fg="red",
               command=self.quit)
    self.quit.grid(row=3, column=1)
    self.text = ScrolledText(self)
    self.text.grid(row=4, columnspan=2)
  def start(self):
    self.running = True
    self.text.insert('end', '来源:' + self.contentDest.get() + "\r\n")
    self.text.insert('end', '成功:' + self.contentSuc.get() + "\r\n")
    self.text.insert('end', '失败:' + self.contentFail.get() + "\r\n")
    self.tianyancha = TianYanCha.TianYanCha(self.contentSuc.get(), self.contentFail.get())
    self.tianyancha.setOutput(self.text)
    self.td = threading.Thread(target=self.startThread)
    self.td.setDaemon(True)
    self.td.start()

  def quit(self):
    self.running = False
    del self.tianyancha
    print('quit')

  def startThread(self):
    self.text.delete(0.0, 'end')
    file = open(self.contentDest.get())
    for line in file.readlines():
      if self.running == True:
        self.tianyancha.getCompanyByName(line.strip('\n'))
      else:
        print('停止')
        break;

以上就是界面部分,效果如下图所示:

Python tkinter和exe打包的方法

##exe打包

Python的常用exe打包有:PyInstaller、py2exe等。我直接选择了PyInstaller。

PyInstaller安装:pip install PyInstaller。目前的最新版本3.2。
PyInstaller打包命令:pyinstaller -F -i snail.ico Application.py。

命令释义:

| 参数|含义|
| :-------------: |:-------------|
|-F|指定打包后只生成一个exe格式的文件|
|-D|?onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)|
|-c|?console, ?nowindowed 使用控制台,无界面(默认)|
|-w|?windowed, ?noconsole 使用窗口,无控制台|
|-p|添加搜索路径,让其找到对应的库|
|-i|改变生成程序的icon图标|

以上,此爬虫程序终于完成了,可以上交领导啦~

没想到竟然有同学需要完整的程序,我只好上传到github了,传送门:git@github.com:kestiny/PythonCrawler.git

总结

以上所述是小编给大家介绍的Python tkinter和exe打包的方法,希望对大家有所帮助!

Python 相关文章推荐
跟老齐学Python之编写类之一创建实例
Oct 11 Python
在Python中编写数据库模块的教程
Apr 29 Python
Python使用xlrd模块操作Excel数据导入的方法
May 26 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
python 使用递归回溯完美解决八皇后的问题
Feb 26 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
python中使用np.delete()的实例方法
Feb 01 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
Mar 03 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
python中pycryto实现数据加密
Apr 29 Python
tensorflow对图像进行拼接的例子
Feb 05 #Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 #Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 #Python
基于Tensorflow批量数据的输入实现方式
Feb 05 #Python
Python操作注册表详细步骤介绍
Feb 05 #Python
Python类继承和多态原理解析
Feb 05 #Python
Python模块 _winreg操作注册表
Feb 05 #Python
You might like
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
axios学习教程全攻略
2017/03/26 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
2020/09/16 Javascript
[47:03]完美世界DOTA2联赛PWL S3 access vs LBZS 第一场 12.20
2020/12/23 DOTA
Python写的一个简单监控系统
2015/06/19 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
python生成requirements.txt的两种方法
2019/09/18 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
为什么称python为胶水语言
2020/06/16 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
工商管理专业自荐信
2014/06/03 职场文书
企业环保标语
2014/06/10 职场文书
医学生求职信
2014/07/01 职场文书
大学生求职自荐信
2015/03/24 职场文书
辩护意见书
2015/06/04 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫