日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

exe打包工具哪个最好_为你的 Python 程序写个启动工具箱

發布時間:2023/12/3 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 exe打包工具哪个最好_为你的 Python 程序写个启动工具箱 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

到目前為止,公眾號已經介紹了不少圖形界面的軟件,比如猜數游戲、PDF閱讀器、貪吃蛇游戲、天氣查詢軟件、PDF 閱讀器等。為了方便他人使用,我們常把圖形界面打包成 exe 文件。但是如果我們只是為了自己使用方便的話,我們有必要把程序打包成幾十乃至上百兆的 exe 文件嗎?沒有必要。我們只要能夠快速啟動圖形界面就可以了。下面我將介紹幾種不需要打開 cmd 窗口就可以顯示圖形界面的方式。

Python 自帶的方式

第一種方式就是直接改 py 文件后綴為 pyw,這樣系統就會自動調用 pythonw.exe 來執行你的程序。這樣你就不必忍受黑乎乎的 cmd 窗口,也不會因為關閉了 cmd 窗口連帶著關閉了程序。

然后我們可以在桌面新建一個快捷方式,右鍵在屬性里更改圖標,這樣我們就創建了一個圖形界面的快捷啟動方式。

批處理文件

第二種方式與第一種類似,也是通過 pythonw.exe 執行 pyw 文件,不過換成了 bat 批處理文件的形式,換湯不換藥。

我們新建一個 txt 文件,在其中輸入這樣兩行代碼,并將其保存為 .bat 文件。start 后面的第一個字符串表示你的pythonw.exe 文件所在位置,一般在你的 Python 安裝目錄下面,和 python.exe 在同一目錄。第二個字符表示你的 pyw 程序的地址,最好使用絕對地址。

@echo off start "D:python372pythonw.exe" "D:QQPCMgrDesktopPytho高效編程start.pyw"

同樣,你可以創建快捷方式,并更改圖標。

用 Python 實現啟動工具箱

下面,我將演示如何使用 PyQt5 實現一個啟動工具箱。

主要實現了以下功能:

  • 通過工具欄可以直接執行 python 程序
  • 九宮格右鍵保存或者刪除快速啟動鏈接
  • 九宮格左鍵點擊顯示圖形界面

為了方便使用,我們可以把這個軟件打包成 exe 文件,或者重命名為 pyw 后綴,并創建快捷方式便于使用。

關鍵點一:

這個程序的核心思想就是再開一個進程來執行 py 文件,但是此時程序的路徑為啟動管理器的路徑。所以說,如果你要打開的程序,比方說“PDF閱讀器”,涉及到了文件路徑,一定要使用絕對路徑。如果使用了相對路徑,必須在你的“PDF閱讀器”源代碼關于路徑的地方加上下面這行代碼。下面這行代碼把當前路徑更改為你的“PDF閱讀器”所在目錄。

os.chdir(os.path.dirname(os.path.realpath(__file__)))

關鍵點二:

我們使用 QProcess 來管理進程。首先創建一個 QProcess 對象,調用 startDetched 方法。startDetched 方法可以在主進程之外新開一個進程。也就是說,如果我們打開或者關閉 “PDF閱讀器” ,并不影響啟動管理器的運行。

from PyQt5.QtCore import QProcess def open(self):fname = self.get_file()if fname:process = QProcess()process.startDetached('python', [fname])

關鍵點三:

重寫 Button 按鍵類以支持右鍵菜單及一系列操作。

其中 parent 為按鈕依附的主程序。

class MyButton(QPushButton):def __init__(self, parent=None):super(MyButton, self).__init__(parent)

重寫以下功能:

  • 字體大小及樣式
  • 支持右鍵菜單(添加、刪除功能)
  • 重寫左鍵點擊事件

要保存的按鈕信息包括:按鈕名稱(你設置的應用名稱)、按鈕對應地址、按鈕狀態(用于判斷按鈕有沒有綁定地址,如果有的話,不支持修改覆蓋名稱操作)。

def initUi(self):# 右鍵菜單工具欄addAction = QAction('添加', self)addAction.triggered.connect(self.add)delAction = QAction('刪除', self)delAction.triggered.connect(self.delete)self.addAction(addAction)self.addAction(delAction)self.clicked.connect(self.run)

關鍵點四:

與數據庫交互,與上次 500 行代碼實現 PDF 閱讀器的思想基本相同,增加了上下文管理器,提高代碼可讀性。

數據庫保存的信息,就是關鍵點三中提到的 button 的屬性。

def save2db(start):with DBManger(starter) as conn:conn.execute("INSERT INTO starter Values (?,?,?)",(start.fname, start.name, start.state))conn.commit()

好了,關鍵點就這么多了,感興趣的朋友可以關注微信公眾號:Python高效編程,后臺回復:2019412 來獲取源代碼。

總結

以上是生活随笔為你收集整理的exe打包工具哪个最好_为你的 Python 程序写个启动工具箱的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。