結合自己的使用過程,近期整理了Win10系統下python + PyQT5 + PyQt5-tools(or QT) + pycharm環境搭建過程,Share在這里共勉共進。
解析
Python是一種跨平臺的計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用于編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越多被用于獨立的、大型項目的開發。
下載地址:https://www.python.org/downloads/
PyQt是一個創建GUI應用程序的工具包。它是Python編程語言和Qt庫的成功融合。Qt庫是目前最強大的庫之一。PyQt是由Phil Thompson 開發。截至目前2020年,PyQt最新版本是第五版,即PyQT5。
下載地址:https://www.riverbankcomputing.com/software/pyqt/download5/
PyQT5-tools是基于PyQt5的工具集,其包含了Qt-Designer,QML插件等,一般安裝該工具集是為了使用Qt-Designer。
下載地址:https://pypi.org/project/pyqt5-tools/#files
Qt?是一個跨平臺C++圖形用戶界面應用程序開發框架。它既可以開發GUI程序,也可用于開發非GUI程序,比如控制臺工具和服務器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴展,并且允許真正地組件編程。
下載地址:http://download.qt.io/archive/qt/
以下是基于QT的幾個延伸補充:
Qt SDK:包含了 Qt 庫以及 Qt 的開發工具(IDE、i18n 等工具),是一套完整的開發環境。當然,這個的體積也是最大的(Windows 平臺大約 1.7G,其它平臺大約 780M)。如果僅僅為開發 Qt,建議選擇這一項下載安裝。安裝方法很簡單,同普通程序沒有什么區別。所需注意的是,安裝過程中可能能夠提供選擇是否安裝源代碼,是否安裝 mingw 編譯器(Windows),這個就按照需要進行選擇即可。
Qt Library:僅包含 Qt 庫。如果您已經安裝了 Qt 開發環境,為了升級一下 SDK 中提供的 Qt 庫版本,就可以安裝這一個。安裝過之后,應該需要在 IDE 中配置安裝路徑,以便找到最新版本的 Qt(如果不是覆蓋安裝的話)。
Qt Creator:基于 Qt 構建的一個輕量級 IDE。包括項目生成向導、高級的 C++ 代碼編輯器、瀏覽文件及類的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、圖形化的 GDB 調試前端、 qmake 構建工具等,還是比較好用的,建議使用 Qt Creator 進行開發。當然,如果你已經習慣了 VS 這樣的工具,可以在頁面最下方找到相應的 Addin。Qt Creator 包括項目生成向導、高級的 C++ 代碼編輯器、瀏覽文件及類的工具、集成了 Qt Designer、Qt Assistant、Qt Linguist、圖形化的 GDB 調試前端,集成 qmake 構建工具等。
Qt Designer:是Qt程序UI界面的實現工具。其設計符合MVC的架構,實現視圖和邏輯的分離,從而提升開發小綠。其操作方式十分靈活,可通過拖拽的方式放置控件并隨時查看控件效果,所作即所見,所見即所得。其生成的.ui文件(實質上是XML格式的文件),可以通過pyuic5工具(包含在PyQt5中)轉換成.py文件,作為python自定義UI庫被調用,當然也是可以被python程序直接調用。
PyCharm是一種Python?IDE,帶有一整套可以幫助用戶在使用Python語言開發時提高其效率的工具,比如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高級功能,以用于支持Django框架下的專業Web開發。
下載地址:https://www.jetbrains.com/pycharm/download/
sip是RiverBank(也就是PyQt的開發商)開發的,用于PyQt為C和C ++庫創建Python綁定的混合編程解決方案。由于Qt框架的復雜性,PyQt并沒有使用Cython、SWIG的混合編程方案,而是自己單獨做了一套框架。sip包括一個sip工具、SDK和Python Module。
下載地址:https://pypi.org/project/sip/#files
pip 是 Python 包管理工具,該工具提供了對Python 包的查找、下載、安裝、卸載的功能。后面Python和QT的相關工具都采用直接的PIP安裝方式。如果您使用的是從python.org下載的Python 2> = 2.7.9或Python 3> = 3.4,或者您正在使用virtualenv或pyvenv創建的虛擬環境中工作,則已經安裝了對應的pip,當然你也可以下載后手動安裝。例如:我的Python3.8, 其默認已經安裝了pip3。
下載地址:https://pypi.org/project/pip/#files
安裝
關于Python和Pycharm的安裝,這里就不打算介紹了,按照上面的url下載后,在win10上一步步正常按照即可。
注意以下幾點:
1)下載Python時,選擇對應的操作系統,體系架構和適用平臺,例如我的電腦就是Windows x86-64、桌面執行使用,故選擇下載Windows x86-64 executable installer,如下圖:
2)Python安裝時可勾選添加到環境變量PATH,如忘記,可在安裝完成后手動添加,如下圖:
3)選擇對應的平臺的Pycharm,下載社區版后(當然你也可付費選擇專業版),正常按照即可。
4)Pycharm安裝時可勾選添加到環境變量PATH,如忘記,可在安裝完成后手動添加,如下圖:
OK, 重頭戲來了,下面重點介紹如何使用pip工具PyQt5 和 PyQt5-tools(or QT)的安裝,當然還包括SIP的安裝,并解決安裝過程中遇到的問題
pip install sip
pip install PyQt5
pip install PyQt5-tools
就留給大家自己做吧,其實Windows下QT的安裝比較簡單,下載安裝即可(只需要注意在安裝中選中相關組件)
1)pip不匹配,安裝失敗
當前PC是pip/pip2, 不是最新版的pip3或者pip沒有指向pip3,安裝pip3即可,注意由于PyQt5僅支持python3,不支持python2,所以必須安裝python3和pip3.
2)連接超時,無法下載并完成安裝
若是自身網速原因,則延長訪問超時時間:
pip --default-timeout=100 install PyQt5(第三方庫)
若是服務器響應或者VPN問題,則更換國內下載源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5(第三方庫)
幾個國內的鏡像源網站供參考:
https://pypi.douban.com/simple (豆瓣)
https://pypi.tuna.tsinghua.edu.cn/simple (清華大學)
https://mirrors.ustc.edu.cn/pypi/web/simple (中國科技大學)
https://mirrors.aliyun.com/pypi/simple/ (阿里)
3)PermissionError: [WinError 5]?
需添加--user參數,即安裝到python用戶目錄
pip install --user?PyQt5(第三方庫)
4)PermissionError: [Errno 13] Permission denied:‘C:\Users…\AppData\Roaming\Python\Python37\site-packages\PyQt5\Qt\bin\d3dcompiler_47.dll’
因為后臺有python服務在運行,所以安裝失敗,只需關閉與python有關的服務或者直接關機重啟后重新安裝即可(可能需要多次關機重啟)
配置
這里主要是進行Pycharm的配置,實現以下三個目的:
1)使用Qt-Designer進行GUI設計
2)使用外部工具PyUIC轉換ui文件成對應python文件
3)編譯和運行python程序
打開Pycharm應用程序后,使用Ctrl+Alt+s組合鍵打開配置窗口,開始以下配置
1)配置GUI設計工具
在External Tools窗口添加Qt-Designer,并進行配置,如下圖
注意:Program欄Qt-Desinger的路徑,Working directory欄填寫變量$FileDir$即可。
2)配置PyUIC轉換工具
注意:Program欄Python解釋器的路徑,Arguments欄填寫如下參數:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working directory欄填寫變量$FileDir$即可。
3)配置Python程序的解釋器
應用
完成以上安裝和配置,可以開始第一個基于PyQT的GUI和Python應用項目了,基本上按照以下步驟:
1)在Pycharm中打開QT_Designer進行GUI設計,生成.ui文件
2)在Pycharm中打開 PyUIC 將.ui 文件轉換成.py文件
3)編寫Python程序,import前面生成的.py 文件,再在其中調用
4)拓展Python程序,定制用戶所需功能
我就舉例實現在上圖中”點擊OK按鈕,顯示hello world“的功能,操作以下三個步驟:
###將轉換后的py文件中的
MainWindow.setCentralWidget(self.centralwidget)
MainWindow.setMenuBar(self.menubar)
MainWindow.setStatusBar(self.statusbar)
這3行語句注釋掉,然后就可以在這個界面的基礎上愉快的實現自己的功能,不然后面整體編譯時不通過。原因時什么呢?請自查......
###修改主程序,如下圖
###新添加click.py文件,實現點擊顯示的功能,作為主程序調用庫
運行主程序,點擊ok按鈕,顯示hello world, 最終實現效果圖:
Anyway,這部分就留給讀者,根據你的需求發揮你的想象,在自己的Python應用程序中遨游吧!
參考: