pyQt5小程序和python打包

一、pyqt5

1.ui轉py文件:

pyuic5 -o main.py mainwindow.ui

稍加觀察一下這個main.py文件就可以察覺,其中只包含一個名叫Ui_MainWindow的類,類之外沒有可以執行的代碼,當然現在執行這個文件什麼都不會發生。這時候需要對main.py添加一點代碼使得設計好的UI能夠出現在我們面前。

  • main.py文件已經自己引入了PyQt5庫中的幾個大類,QtCore, QtGui, QtWidgets;這不夠,我們還需要引入sys庫,所以添加:
import sys
  • 除次之外,我們需要在class之外添加一些代碼,將類實例化,並且運行這個實例:
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

2.信號和槽連接

self.pushButton.clicked.connect(lambda :self.函數(參數1,參數2))

二、py轉exe

1.pyinstaller

離線安裝會有幾個依賴包future、pefile、pywin32-ctypes,按順序裝完這三個再安裝pyinstaller;

命令行執行:pyinstaller -Fw main.py

此處打包一個不顯示dos窗口且在dist文件夾下形成一個exe文件的包,有其它需求可百度Fw等參數。

打包完成運行會提示錯誤,需要拷貝:Anaconda3/Library/plugins下的platforms文件夾到dist文件夾下。

提示:

使用pyinstaller打包後,exe文件會比較大,這是由於默認的把所有的包都集成到裏面了,如果想要文件小一點,可以安裝一個純淨版的python,只安裝需要的包,或者打包時候打包成文件夾的形式,再刪除不需要的包。

2.cxfreeze

安裝直接下載安裝就行,https://www.lfd.uci.edu/~gohlke/pythonlibs/

打包時候需要使用絕對路徑:cxfreeze D:/hello.py --target-dir D:/123
需要注意的是,安裝完可能會提示沒有cxfreeze這個命令,參考往上查到的,在Anaconda3/Scripts文件夾下添加一個cxfreeze.bat文件,內容如下:
@ echo off
D:\Anaconda3\python.exe D:\Anaconda3\Scripts\cxfreeze %*

參考文獻:

1、https://www.jianshu.com/p/43300f85af3e

2、https://www.zhihu.com/question/41211581

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章