PyQt5環境搭建及cx_freeze打包exe


Python的圖形庫也有好幾個,Qt文檔和使用面還是要廣一些。
打包成可執行文件的也有好幾個,PyInstaller用的比較多,但是PyInstaller目前還不支持Python3.6(開發版支持3.6,但是我測試我的項目,打包出來的exe執行結果有問題)。
於是就選擇了PyQt+cx_freeze。
安裝PyQt5和cx_freeze用pip命令即可安裝,非常方便。

pip install PyQt5
pip install cx_freeze

安裝完畢后,測試一下:

新建hello.py

內容如下

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon

if __name__ == '__main__':
    app = QApplication(sys.argv)

    w = QWidget()
    icon = QIcon("icon.png")
    w.setWindowIcon(icon)
    w.resize(400, 300)
    w.move(400, 300)
    w.setWindowTitle('hello world')
    w.show()
    
    sys.exit(app.exec())

說明:

  • 開一個Qt的窗口,並將icon.png作為它的icon,這個icon也會顯示在windows的任務欄上
  • 調整窗口的大小到400x300,也移動到400,300處
  • 將窗口的標題指定為"hello world"

使用python hello.py命令,看到下面的圖形界面,證明PyQt安裝正常

下面就是將這個hello.py打包成可執行文件了。

打包exe文件

新建setup.py,內容如下

from cx_Freeze import setup, Executable
import sys
base = 'WIN32GUI' if sys.platform == "win32" else None


executables = [Executable("hello.py", base=base, icon='icon.ico')]

packages = []
include_files=['icon.png']
options = {
    'build_exe': {
        'packages':packages,
        'include_files': include_files
    },

}

setup(
    name = "prog",
    options = options,
    version = "1.0",
    description = 'desc of program',
    executables = executables
)

說明:

  • executable內的hello.py就是要打包的python腳本,icon就是這個exe的圖標
  • include_files表示要打包的其他文件,我這里是有一個icon.png需要一起打包
  • setup內的name, version, description都可以自己填寫,相信大家都知道這些是什么含義

在命令行轉到剛剛的setup.py文件的目錄,使用如下命令打包exe:

python setup.py build

打包以后,出來了一大堆,文件夾大小是179M。里面大概像這個樣子,hello.exe就是打包出來的可執行文件了

雙擊exe,運行完全正常。
相關源碼:Github-Syler-Fun-PyQt-cx_freeze


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM