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