最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python tkinter和exe打包的方法

 更新時(shí)間:2020年02月05日 15:05:20   作者:kestiny  
這篇文章主要介紹了Python tkinter和exe打包的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

爬蟲程序的核心,爬蟲天眼查的公司信息類TianYanCha已經(jīng)完成了,并且驗(yàn)證可以工作,但是給不是專業(yè)方面的人用的話,還要安裝Python解釋器,還沒有界面是挺麻煩的,于是就想寫一個(gè)簡(jiǎn)單的界面,然后打包成可執(zhí)行程序給女票用。

##tkinter界面

  由于我的界面要求很簡(jiǎn)單,只是輸入兩個(gè)文件路徑,一個(gè)實(shí)時(shí)輸出信息的文本框,于是沒有選擇其他的Python界面擴(kuò)展,只是選擇Python的事實(shí)界面庫(kù)—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"] = '來(lái)源路徑:'
    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')     #設(shè)置界面的默認(rèn)值
    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"] = '失敗路徑:'      #設(shè)置界面的默認(rèn)值
    self.labelFail.grid(row=2, column=0)
    self.contentFail = tk.StringVar()
    self.contentFail.set('./work/fail.txt')    #設(shè)置界面的默認(rèn)值
    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', '來(lái)源:' + 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;

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

##exe打包
  Python的常用exe打包有:PyInstaller、py2exe等。我直接選擇了PyInstaller。

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

命令釋義:

| 參數(shù)|含義|
| :-------------: |:-------------|
|-F|指定打包后只生成一個(gè)exe格式的文件|
|-D|–onedir 創(chuàng)建一個(gè)目錄,包含exe文件,但會(huì)依賴很多文件(默認(rèn)選項(xiàng))|
|-c|–console, –nowindowed 使用控制臺(tái),無(wú)界面(默認(rèn))|
|-w|–windowed, –noconsole 使用窗口,無(wú)控制臺(tái)|
|-p|添加搜索路徑,讓其找到對(duì)應(yīng)的庫(kù)|
|-i|改變生成程序的icon圖標(biāo)|

以上,此爬蟲程序終于完成了,可以上交領(lǐng)導(dǎo)啦~

沒想到竟然有同學(xué)需要完整的程序,我只好上傳到github了,傳送門:git@github.com:kestiny/PythonCrawler.git

總結(jié)

以上所述是小編給大家介紹的Python tkinter和exe打包的方法,希望對(duì)大家有所幫助!

相關(guān)文章

  • yolov5返回坐標(biāo)的方法實(shí)例

    yolov5返回坐標(biāo)的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于yolov5返回坐標(biāo)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Python開發(fā)之基于模板匹配的信用卡數(shù)字識(shí)別功能

    Python開發(fā)之基于模板匹配的信用卡數(shù)字識(shí)別功能

    這篇文章主要介紹了基于模板匹配的信用卡數(shù)字識(shí)別功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • rhythmbox中文名亂碼問(wèn)題解決方法

    rhythmbox中文名亂碼問(wèn)題解決方法

    在使用rhythmbox過(guò)程中,出現(xiàn)了,如果是中文名則會(huì)出現(xiàn)亂碼,下面的方法即可解決
    2008-09-09
  • python二進(jìn)制串轉(zhuǎn)字符串的方法詳解

    python二進(jìn)制串轉(zhuǎn)字符串的方法詳解

    這篇文章主要介紹了python二進(jìn)制串轉(zhuǎn)字符串的方法詳解,使用json,可以自動(dòng)檢測(cè)編碼,但需要注意的是,它返回的是python對(duì)象,不一定是字符串,具體是什么對(duì)象要視原始內(nèi)容而定,需要的朋友可以參考下
    2023-11-11
  • 人工智能Text Generation文本生成原理示例詳解

    人工智能Text Generation文本生成原理示例詳解

    這篇文章主要為大家介紹了Text Generation文本生成原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • python從入門到實(shí)踐之字典

    python從入門到實(shí)踐之字典

    這篇文章主要為大家介紹了python字典,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • 運(yùn)用Python3實(shí)現(xiàn)Two-Pass算法檢測(cè)區(qū)域連通性

    運(yùn)用Python3實(shí)現(xiàn)Two-Pass算法檢測(cè)區(qū)域連通性

    如何高效的檢測(cè)出連通區(qū)域的流動(dòng)性是大家一直關(guān)注的話題,這篇文章主要介紹了運(yùn)用Python3實(shí)現(xiàn)Two-Pass算法檢測(cè)區(qū)域連通性,感興趣的朋友可以一起來(lái)看看
    2021-08-08
  • ???????Python?入門學(xué)習(xí)之函數(shù)式編程

    ???????Python?入門學(xué)習(xí)之函數(shù)式編程

    這篇文章主要介紹了???????Python?入門學(xué)習(xí)之函數(shù)式編程,?Python?中的函數(shù)式編程技術(shù)進(jìn)行了簡(jiǎn)單的入門介紹,下文詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • Python類中方法getitem和getattr詳解

    Python類中方法getitem和getattr詳解

    這篇文章主要介紹了Python類中方法getitem和getattr詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 關(guān)于fastapi異步接口卡死的坑及解決

    關(guān)于fastapi異步接口卡死的坑及解決

    這篇文章主要介紹了關(guān)于fastapi異步接口卡死的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評(píng)論

章丘市| 恩平市| 陇川县| 北碚区| 洞头县| 高邮市| 镇原县| 太保市| 银川市| 渭南市| 南宫市| 嘉义市| 新干县| 洪洞县| 枣强县| 出国| 和田市| 锦屏县| 丹棱县| 东方市| 宜都市| 英山县| 嘉祥县| 郴州市| 浮梁县| 阜康市| 汤阴县| 光泽县| 伊宁市| 唐河县| 宜兰市| 浮梁县| 大荔县| 虎林市| 巫山县| 开原市| 沿河| 旌德县| 武胜县| 长治县| 竹溪县|