Win下PyInstaller 安裝和使用教程
簡介:
PyInstaller可以將Python原始碼釋出成Win/MacOS等系統中的可執行檔案。對開發者而言隱藏了原始碼實現,保護了智慧財產權。對使用者而言不用裝環境,傻瓜式的雙擊就可以執行程式。
PyInstaller常見命令:
如下所示:
命令 說明-F生成單個可執行檔案-D –onedir建立一個目錄,包含exe檔案,但會依賴很多檔案(預設選項)-w表示去掉控制檯視窗,這在GUI介面時非常有用。不過如果是命令列程式的話那就把這個選項刪除吧-c –console,–nowindowed使用控制檯,無介面(預設)-p自定義需要載入的類路徑,一般情況下用不到-i可執行檔案的圖示-v檢視版本資訊-h檢視幫助資訊
安裝PyInstaller:
流程如下所示:
1.下載PyInstaller,這裡我選擇的是PyInstaller-3.5.tar.gz版本。如圖所示:
2.解壓PyInstaller-3.5.tar.gz到桌面;然後在setup.py檔案所在的目錄處開啟cmd。如圖所示:
3.
由於python3.7.4在安裝時順帶安裝了setuptools,所以我們可以直接使用"python setup.py install"命令來安裝PyInstaller;然後使用"pyinstaller -v"檢視版本資訊來驗證是否安裝成功。如圖所示:
使用PyInstaller:
流程如下所示:
1.我現在需要對test/app.py檔案生成一個具有test/app.ico圖示樣式的可執行檔案app.exe。此時就需要在app.py所在目錄開啟cmd;然後執行"pyinstaller -F -w -i app.ico app.py"
命令來生成可執行檔案app.exe。
app.py原始碼如下所示:
參考pyqt5-win安裝和使用來設定pyqt5的環境。
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ Py40 PyQt5 tutorial In this example,we create a bit more complicated window layout using the QGridLayout manager. author: Jan Bodnar website: py40.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import (QWidget,QLabel,QLineEdit,QTextEdit,QGridLayout,QApplication) class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): title = QLabel('Title') author = QLabel('Author') review = QLabel('Review') titleEdit = QLineEdit() authorEdit = QLineEdit() reviewEdit = QTextEdit() grid = QGridLayout() grid.setSpacing(10) grid.addWidget(title,1,0) grid.addWidget(titleEdit,1) grid.addWidget(author,2,0) grid.addWidget(authorEdit,1) grid.addWidget(review,3,0) grid.addWidget(reviewEdit,5,1) self.setLayout(grid) self.setGeometry(300,300,350,300) self.setWindowTitle('Review') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
命令執行如圖所示:
2.使用PyInstaller成功釋出可執行檔案後,會在app.py檔案所在的目錄中生成__pycache__,build,dist,app.spec等檔案或者目錄。其中dist目錄中會存在一個具有app.ico樣式的可執行檔案app.exe,此時直接雙擊app.exe就可以執行了。如圖所示:
總結
以上所述是小編給大家介紹的Win下PyInstaller 安裝和使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!