Mac環(huán)境下Pycharm集成PyQt5和Pyinstaller

想用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雙擊進入

選擇pip雙擊進入:


搜索pyqt5

安裝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


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的布局文件:


MainV

然后創(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编兄,如果看到窗體正常顯示即表示成功了轩性!


開心o(╥﹏╥)o

5.使用PyInstaller打包項目

創(chuàng)建好窗口項目后,我們希望能夠生成可執(zhí)行文件來發(fā)布使用狠鸳,這里可以使用PyInstaller插件來進行打包(PyInstaller在不同系統(tǒng)下打包生成的都是當前系統(tǒng)的可執(zhí)行文件揣苏,也就是說如果想要生成window可用的exe文件悯嗓,可以到window環(huán)境下去打包

①安裝PyInstaller

在Pycharm中使用pip去安裝PyInstaller


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"

總算找到了位置:

pyinstaller可執(zhí)行文件路徑

接下來是添加環(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文件夾中


Uimain.app

在finder中也能查看到,雙擊APP運行,效果和之前測試的一樣


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呕寝,一起剝皮案震驚了整個濱河市昌罩,隨后出現(xiàn)的幾起案子疲憋,更是在濱河造成了極大的恐慌龙巨,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件带到,死亡現(xiàn)場離奇詭異晶衷,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門晌纫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來税迷,“玉大人,你說我怎么就攤上這事锹漱〖” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵哥牍,是天一觀的道長毕泌。 經(jīng)常有香客問我,道長嗅辣,這世上最難降的妖魔是什么撼泛? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮澡谭,結(jié)果婚禮上愿题,老公的妹妹穿的比我還像新娘。我一直安慰自己蛙奖,他們只是感情好潘酗,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雁仲,像睡著了一般仔夺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上攒砖,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天缸兔,我揣著相機與錄音,去河邊找鬼吹艇。 笑死惰蜜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的掐暮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼政钟,長吁一口氣:“原來是場噩夢啊……” “哼路克!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起养交,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤精算,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碎连,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灰羽,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了廉嚼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玫镐。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖怠噪,靈堂內(nèi)的尸體忽然破棺而出恐似,到底是詐尸還是另有隱情,我是刑警寧澤傍念,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布矫夷,位于F島的核電站,受9級特大地震影響憋槐,放射性物質(zhì)發(fā)生泄漏双藕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一阳仔、第九天 我趴在偏房一處隱蔽的房頂上張望忧陪。 院中可真熱鬧,春花似錦驳概、人聲如沸赤嚼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽更卒。三九已至,卻和暖如春稚照,著一層夾襖步出監(jiān)牢的瞬間蹂空,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工果录, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留上枕,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓弱恒,卻偏偏與公主長得像辨萍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子返弹,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容