想用Python開發(fā)窗口程序叽讳,最終決定用PyQt5和QTDesigner來進行圖形界面開發(fā)捣炬,配環(huán)境配了差不多1天(踩了太多坑。绽榛。湿酸。。)灭美,特地記錄一下整個配置流程推溃。
1.安裝QT
我是用Homebrew安裝的,在終端中輸入:
brew install qt
等待下載完成即可
2.安裝PyQt5
首先我嘗試了用pip安裝届腐,在終端中執(zhí)行:
pip3 install PyQt5
或者是在Pycharm中使用pip安裝:
打開Preferences-->Project-->Project Interpreter
選擇pip雙擊進入:
安裝PyQt5和PyQt5-sip
如果你的網(wǎng)絡(luò)比較好的話應(yīng)該是能夠正常安裝的铁坎,但我的網(wǎng)絡(luò)環(huán)境缺一直下載不下來蜂奸,沒辦法,我只好采用另一種方法來安裝(這里我就踏進了第一個坑??)
使用Homebrew安裝PyQt5硬萍,在終端中輸入:
brew install sip
brew install pyqt
等待一段時間后扩所,顯示安裝成功,但我在Project Interpreter列表中還是沒有看到朴乖,找了半天資料后祖屏,最終發(fā)現(xiàn)應(yīng)該是工程中設(shè)置的Python解釋器(Interpreter)的問題
Pycharm在創(chuàng)建Python工程的時候可以設(shè)置使用的解釋器,默認是會在工程下創(chuàng)建一個
新建工程
當我們在Pycharm中選擇pip安裝插件時买羞,都是安裝在當前選擇的Interpreter目錄中的袁勺,
但當我們在系統(tǒng)終端中輸入pip命令安裝時,則是安裝在系統(tǒng)的Interpreter目錄中畜普,所以在Pycharm的Project Interpreter列表中沒有看到安裝好的PyQt5
理論上只要選擇Existing Interpreter把工程的Interpreter切換成系統(tǒng)的就行期丰,但我遇到了個更大的坑,當初裝Python環(huán)境時吃挑,我是用官網(wǎng)的包安裝的钝荡,Interpreter位于/usr/local/bin
目錄下,但我在使用homebrew安裝PyQt5時舶衬,homebrew又幫我下載了一套Python環(huán)境化撕。。约炎。位于/usr/local/Cellar/python/3.7.7/bin
目錄下,所以當我把Interpreter切換到這個目錄下的版本時蟹瘾,在Project Interpreter列表中才終于出現(xiàn)了PyQt5-_-||
3.配置External Tools
安裝好開發(fā)工具后狸捕,我們可以在External Tools中配置些快捷工具方便我們的開發(fā)
-
首先配置QTDesigner的快速啟動工具:
Preferences-->Tools-->External Tools中新增項
QTDesigner
Name:隨意配置
Program:選擇Designer的位置,如果是用homebrew安裝的一般就是我現(xiàn)在填的這個路徑/usr/local/Cellar/qt/5.14.1/libexec/Designer.app
(中間有個版本號要注意)
Working directory:填當前項目工作目錄$FileDir$
配置好后众雷,我們在Tools菜單的External Tools中可以快速的啟動QTDesigner
-
配置使用PyQt5將.ui文件轉(zhuǎn)換.py代碼的工具
Preferences-->Tools-->External Tools中新增項
PyUIC
Name:隨意配置
Program:選擇pyuic5可執(zhí)行程序的路徑
Arguments:配置轉(zhuǎn)換命令$FileName$ -o $FileNameWithoutExtension$.py
Working directory:填當前項目工作目錄$FileDir$
配置好后灸拍,我們右鍵點擊.ui文件,可以在External Tools中使用PyUIC快速生成.py文件
4.創(chuàng)建簡單的窗口程序
首先用QTDesigner創(chuàng)建一個MainWindow界面砾省,然后保存到工程目錄下鸡岗,再用PyUIC生成.py的布局文件:
然后創(chuàng)建運行窗體的Python文件UImain.py,編入代碼:
import sys
import mainV
from PyQt5.QtWidgets import QApplication, QMainWindow
if __name__ == '__main__':
app = QApplication(sys.argv)
MainW = QMainWindow()
ui = mainV.Ui_MainWindow()
ui.setupUi(MainW)
MainW.show()
sys.exit(app.exec_())
最后運行UImain.py编兄,如果看到窗體正常顯示即表示成功了轩性!
5.使用PyInstaller打包項目
創(chuàng)建好窗口項目后,我們希望能夠生成可執(zhí)行文件來發(fā)布使用狠鸳,這里可以使用PyInstaller插件來進行打包(PyInstaller在不同系統(tǒng)下打包生成的都是當前系統(tǒng)的可執(zhí)行文件揣苏,也就是說如果想要生成window可用的exe文件悯嗓,可以到window環(huán)境下去打包
)
①安裝PyInstaller
在Pycharm中使用pip去安裝PyInstaller
②打包
這里有兩種方法:
- 在Pycharm的Terminal中執(zhí)行:
pyinstaller -F UImain.py
這里我遇到了第二個坑,執(zhí)行上訴命令后卸察,終端提示mac command not found: pyinstaller
未找到此命令
于是我試著在系統(tǒng)的終端執(zhí)行pyinstaller命令脯厨,結(jié)果也是一樣,查了資料后發(fā)現(xiàn)是需要配置pyinstaller的環(huán)境變量坑质,于是就去找pyinstaller的路徑
找路徑的過程也是十分蛋疼合武,先是去pyinstaller的安裝路徑下找,并沒有找到可執(zhí)行文件洪乍,最后沒辦法眯杏,只好用全局搜索的方式,在終端中執(zhí)行:
find / -name "pyinstaller"
總算找到了位置:
接下來是添加環(huán)境變量壳澳,執(zhí)行
vim ~/.bash_profile
編輯配置文件岂贩,在文件中添加:
export PATH=/Users/liaoxuan/Library/Python/3.7/bin:$PATH
然后退出編輯,執(zhí)行source ~/.bash_profile
應(yīng)用最新的配置巷波,這下總算能在系統(tǒng)終端里運行pyinstaller命令了
但當我回到Pycharm的Terminal中執(zhí)行命令時萎津,發(fā)現(xiàn)還是報錯找不到命令,這個真的是坑中坑o(╥﹏╥)o
繼續(xù)查找了半天抹镊,發(fā)現(xiàn)Pycharm中使用的zsh終端锉屈,每次打開zsh都需要手動source ~/.bash_profile
來獲取~/.bash_profile
里面的配置,
后來找到了解決辦法垮耳,就是修改zsh的配置文件颈渊,讓其在每次啟動的時候來讀取~/.bash_profile
里面的配置。vim ~/.zshrc
在文件的最后面加上source ~/.bash_profile
终佛,執(zhí)行source ~/.zshrc
使其立即生效
終于俊嗽,在Pycharm的Terminal中也能執(zhí)行了
-
創(chuàng)建External Tools來打包
之前我創(chuàng)建了External Tools來將.ui文件生成.py文件,那么用External Tools來打包應(yīng)該也是可以的
Preferences-->Tools-->External Tools中新增項
PyEXE
Name:隨意配置
Program:選擇pyinstaller的位置:/Users/liaoxuan/Library/Python/3.7/bin/pyinstaller
Arguments:配置執(zhí)行命令-F $FileNameWithoutExtension$.py
Working directory:填當前項目工作目錄$FileDir$
配置好后铃彰,我們右鍵點擊.py文件跃须,可以在External Tools中使用PyEXE快速生成可執(zhí)行文件劣针,生成路徑在工程的dist文件夾中
在finder中也能查看到,雙擊APP運行,效果和之前測試的一樣