想用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)絡比較好的話應該是能夠正常安裝的,但我的網(wǎng)絡環(huán)境缺一直下載不下來,沒辦法,我只好采用另一種方法來安裝(這里我就踏進了第一個坑??)
使用Homebrew安裝PyQt5,在終端中輸入:
brew install sip
brew install pyqt
等待一段時間后,顯示安裝成功,但我在Project Interpreter列表中還是沒有看到,找了半天資料后,最終發(fā)現(xiàn)應該是工程中設置的Python解釋器(Interpreter)的問題
Pycharm在創(chuàng)建Python工程的時候可以設置使用的解釋器,默認是會在工程下創(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文件轉換.py代碼的工具
Preferences-->Tools-->External Tools中新增項
PyUIC
Name:隨意配置
Program:選擇pyuic5可執(zhí)行程序的路徑
Arguments:配置轉換命令$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命令,結果也是一樣,查了資料后發(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應用最新的配置,這下總算能在系統(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來打包應該也是可以的
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運行,效果和之前測試的一樣




