Qt for Python Mac下使用 fbs 打包软件
Python打包工具
Python的常用的打包工具包括:fbs、PyInstaller、cx_Freeze、py2exe、py2app,而Qt for Python是一個跨平臺的框架,因此我們希望專注于在Qt支持的三個主要平臺上運行的解決方案:Linux,macOS和Windows。下表總結(jié)了對這些打包工具的平臺支持:
根據(jù)上面的表可以看出,只有fbs,cx_Freeze和PyInstaller 滿足我們的跨平臺要求。
本文介紹其中一個打包工具 fbs 用來為Qt for Python打包,其他兩個大同小異,具體可以參考官網(wǎng)。
FBS
fbs為Python程序打包、創(chuàng)建安裝程序和簽署應用程序提供了強大的環(huán)境。它支持管理應用程序的更新,它基于PyInstaller,因此它支持Linux,macOS和Windows。
詳細的信息可以參照官方教程,或者查看文檔幫助,有非常詳細的操作指引。
安裝
通過pip進行安裝:
pip install fbs如果您使用的是虛擬環(huán)境,請記住在安裝之前將其激活。
安裝后,就可以使用fbs可執(zhí)行文件。
創(chuàng)建項目
fbs提供了很好的功能,可以通過執(zhí)行以下命令來創(chuàng)建基礎項目結(jié)構(gòu),直接在終端輸入以下命令:
fbs startproject輸入后回車,會提示讓你回答幾個問題:
- 項目名稱
- 作者
- Qt綁定(PySide2或PyQt5)
- 捆綁識別(對于macOS才有)
分別輸入后回車就行了。
然后會提示:
在當前路徑下就會生成一個src的目錄,結(jié)構(gòu)如下:
└── src├── build│ └── settings└── main├── icons│ ├── base│ ├── linux│ └── mac└── python在settings目錄中,有一些可以編輯的json文件,以包含有關項目的更多信息。
在main文件將是下Python目錄,其內(nèi)容在默認情況下是:
from fbs_runtime.application_context.PySide2 import ApplicationContext from PySide2.QtWidgets import QMainWindowimport sysif __name__ == '__main__':appctxt = ApplicationContext() # 1. Instantiate ApplicationContextwindow = QMainWindow()window.resize(250, 150)window.show()exit_code = appctxt.app.exec_() # 2. Invoke appctxt.app.exec_()sys.exit(exit_code)此示例顯示空QMainWindow。這時候我們只需要繼續(xù)在命令行輸入輸入以下命令即可運行:
fbs run凍結(jié)
驗證應用程序正常工作后,可以使用以下命令繼續(xù)執(zhí)行凍結(jié)過程:
fbs freeze完成此過程后,會收到一條消息,指出可執(zhí)行文件的位置。例如:
Done. You can now run `target/PySideTest.app/Contents/MacOS/PySideTest`. If that doesn't work, see https://build-system.fman.io/troubleshooting.這時候在目錄下就可以看到多了一個target目錄,并且里面包含可執(zhí)行程序:
這樣就可以直接雙擊運行可執(zhí)行程序了,或者在命令行中直接進入到該目錄后運行。
打包成安裝文件
最后一步,要將程序打包成安裝文件,比如mac下是dmg,Windows下是exe。怎么做呢,很簡單,執(zhí)行以下命令就會自動生成:
fbs installer執(zhí)行完成后就能在target目錄下看到生成的安裝包文件:
OK,這樣就做好了一個打包文件,如果是自己的一個單獨的項目想要用fbs打包,那么可以通過fbs startproject生成基礎代碼過后,將自己的項目代碼拷貝到相應的目錄中去,然后替換相關的圖片資源等等,最關鍵的是要在自己的程序中添加這句:
from fbs_runtime.application_context.PySide2 import ApplicationContext然后就可以按照以上流程打包了。
真的是簡單得不能再簡單,很好用。
這里只是簡單的介紹大致流程,要進一步了解詳細信息,可參照官方文檔進行。
總結(jié)
以上是生活随笔為你收集整理的Qt for Python Mac下使用 fbs 打包软件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《创始人》学习笔记
- 下一篇: Qt for Python使用Qt中的P