構建PyQt5.8/Python2.7
- 安裝Python2.x(通常是最新版本的2.7.*)
- 安裝Python的開發庫(Windows和macOS已經自帶,Linux按照對應發行版的軟體倉庫安裝)
- 如果已經安裝了PyQt4,按這篇文章所述的方法將sip移動到PyQt4內部,以免sip衝突
- 安裝開發環境。最新的Qt5.8需要Visual Studio 2013/2015(Windows)。在macOS上應該安裝最新的xcode和Command Line Development Tools,在其他Linux環境應該安裝相應的編譯器。
- 安裝Qt5.8
- 安裝其他必要的庫,例如Qt的多媒體組件在Linux下可能需要libpulse-dev
- sip-4.19.1.zip
- PyQt5_gpl-5.8.zip
- PyQt3D_gpl-5.8.zip
- QScintilla_gpl-2.10.zip
$ cd sip-4.19.1n$ python configure.pyn$ maken
得到的sip可執行文件在sipgen中,sip的Python模塊(sip.pyd或sip.so)在siplib中。這時不要安裝sip。
5.編譯PyQt5在Windows/Visual Studio平台下,用以下命令編譯PyQt5:$ cd PyQt5_gpl-5.8n$ python configure.py --sip=..sip-4.19.1sipgensip.exe --sip-incdir=..sip-4.19.1siplib --disable=QtNfcn$ nmaken$ nmake installn
$ cd PyQt5_gpl-5.8n$ python configure.py --sip=../sip-4.19.1/sipgen/sip --sip-incdir=../sip-4.19.1/siplib --disable=QtNfcn$ maken$ sudo make installn
(QtNfc因為固有bug,忽略不使用)
在安裝的時候觀察PyQt5的安裝位置:- 在Windows下通常為 C:Python27Libsite-packagesPyQt5
- 在Linux(Ubuntu)下通常為/usr/lib/python2.7/dist-packages/PyQt5
- 在macOS下通常為 /Library/Frameworks/Python.framework/Versions/2.7/lib/site-packages/PyQt5
- Qt5的plugins目錄
- siplib中的sip.pyd或sip.so
打開PyQt5的__init__.py,添加以下代碼:
import sysnimport osnpyqt5_path = os.path.realpath(os.path.dirname(__file__))nsys.path.append(pyqt5_path)nos.environ[QT_QPA_PLATFORM_PLUGIN_PATH] = pyqt5_path + /plugins/platformsnos.environ[QT_PLUGIN_PATH] = pyqt5_path + /pluginsn
可以試試運行examples目錄下的例子,看看有沒有問題。
6. 編譯PyQt3DWindows/Visual Studio平台下,用以下命令編譯PyQt3D:$ cd PyQt3D_gpl-5.8n$ python configure.py --sip=..sip-4.19.1sipgensip.exe --sip-incdir=..sip-4.19.1siplibn$ nmaken$ nmake installn
在macOS/Linux下的命令:
$ cd PyQt3D_gpl-5.8n$ python configure.py --sip=../sip-4.19.1/sipgen/sip --sip-incdir=../sip-4.19.1/siplibn$ maken$ sudo make installn
可以試運行examples下的例子。
7.編譯QScintilla2首先編譯QScintilla2:在Windows下的命令$ cd QScintilla_gpl-2.10Qt4Qt5n$ qmaken$ nmake releasen$ nmake installn
在macOS/Linux下的命令:
$ cd QScintilla_gpl-2.10/Qt4Qt5n$ qmaken$ maken$ sudo make installn
然後編譯PyQt的QScintilla2:
在Windows下的命令$ cd QScintilla_gpl-2.10Pythonn$ python configure.py --sip=....sip-4.19.1sipgensip.exe --sip-incdir=....sip-4.19.1siplib --pyqt-sipdir=....PyQt5_gpl-5.8sip --pyqt=PyQt5n$ nmake releasen$ nmake installn
在macOS/Linux下的命令:
$ cd QScintilla_gpl-2.10/Pythonn$ python configure.py --sip=../../sip-4.19.1/sipgen/sip --sip-incdir=../../sip-4.19.1/siplib --pyqt-sipdir=../../PyQt5_gpl-5.8/sip --pyqt=PyQt5n$ maken$ sudo make installn
寫一段代碼測試一下:
import sysnfrom PyQt5.QtCore import *nfrom PyQt5.QtGui import *nfrom PyQt5.QtWidgets import *nfrom PyQt5.Qsci import QsciScintilla, QsciLexerPythonnnnif __name__ == "__main__":n app = QApplication(sys.argv)n font = QFont()n font.setFamily(Courier)n font.setFixedPitch(True)n editor = QsciScintilla()n editor.setFont(font)n lexer = QsciLexerPython()n lexer.setFont(font)n editor.setLexer(lexer)n editor.show()n editor.setText(open(sys.argv[0]).read())n app.exec_()n
對於Windows而言,先把Qt5的bin目錄下所有.dll(除Qt5Gamepad.dll外的*d.dll可以不複製)以及Visual C++運行庫(對於Visual Studio 2013而言,是msvcr120.dll和msvcp120.dll)複製到PyQt5目錄下,然後把PyQt5目錄壓縮一下,就能裝到其他電腦的Python中了。此外還有三個工具.bat位於Python的安裝目錄之下,分別為 pylupdate5.bat、pyrcc5.bat和pyuic5.bat。這些.bat放在任意位置都是可以運行的,一併拷走。
對於macOS而言,要先把Qt5的lib目錄複製到PyQt5中,接著壓縮PyQt5這個目錄,然後在其他電腦上手工複製即可。pylupdate5、pyrcc5和pyuic5的位置在/Library/Frameworks/Python.framework/Versions/2.7/bin/中,這三個文件是獨立的腳本,也是放在任意位置均可運行。在其他電腦運行PyQt5腳本之前,需要執行以下環境變數的設置:export DYLD_FRAMEWORK_PATH=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt5/lib/nexport DYLD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt5/lib/n
對於Linux而言,以Ubuntu為例,要先把Qt5的lib目錄下所有lib***.so複製到PyQt5中,接著壓縮PyQt5這個目錄,然後在其他電腦上手工複製即可。npylupdate5、pyrcc5和pyuic5的位置在/usr/bin/中,這三個文件是獨立的腳本,也是放在任意位置均可運行。在其他電腦運行PyQt5腳本之前,需要執行以下環境變數的設置:
export LD_LIBRARY_PATH=/usr/lib/python2.7/dist-packages/PyQt5n
如果對方需要,還可以帶上所有的examples加以驗證。
推薦閱讀:
※Kivy中文編程指南:事件和屬性
※分享一個簡單的多進程小爬蟲
※第一章 | 使用python機器學習
※Python數據分析及可視化實例之Flask Web開發
※lasagne,keras,pylearn2,nolearn深度學習庫,到底哪家強?