CentOS6にPyQt4をインストール
PyQt4をソースからインストール
”あれ、PyQt5のインストールじゃないの??”と言われてしまいそうですが、PyQt4です。PyQt4と5の比較をしたくなることもあるはず!ということで、PyQt4を準備です。これは慣れたもの!(のはず。)前回からの続きということで、ルート権がない状態でCentOS6に開発環境を導入する、ということをテーマにします。
Qt4のインストール
まずはQt4のソースをゲットです。
$ wget http://download.qt.io/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz
取得が終われば展開、コンパイルです。
$ tar xf qt-everywhere-opensource-src-4.8.6.tar.gz $ cd qt-everywhere-opensource-src-4.8.6 $ ./configure --prefix=$HOME/local/qt/4.8.6 $ make
インストール先は、後でQt5も入れることを考えて"~/local/qt/4.8.6"にしました。configure実行直後に聞かれるライセンスはopensourceを選びました。
他にもオプションを工夫したほうが良いかも知れませんが、とりあえず今回は一番簡単なオプションで。。。
おっと、エラーです。
make /home/takumi/app_compile/qt-everywhere-opensource-src-4.8.6/src/3rdparty/webkit/Source/WebCore/WebCore.pro -spec /home/takumi/app_compile/qt-everywhere-opensource-src-4.8.6/mkspecs/linux-g++ -o Makefile.WebKit Project ERROR: Package gstreamer-app-0.10 not found
むむむ。。。足りないパッケージをyumでインストールす必要がありますね。。。
ルート権がない状態というテーマと、当面WebKitは使わないだろうという前提のもと、WebKitは無視することにします。
$ ./configure --prefix=$HOME/local/qt/4.8.6 -no-webkit $ make $ make install
インストール完了。
Python 2.7 のインストール
Python2.7もソースからインストールしてみましょう。執筆時点での最新は2.7.12でした。
$ wget wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz $ tar xf Python-2.7.12.tgz $ cd Python-2.7.12 $ ./configure --enable-shared --prefix=$HOME/local/python/2.7.12 $ make $ make install
特にトラブル無く終了!
SIP & PyQt4のインストール
ここからPyQt4のインストールですね。まずはさっきインストールしたQt,Pythonにパスを通します。
$ export QTDIR=$HOME/local/qt/4.8.6 $ export PATH=$QTDIR/bin:$HOME/local/python/2.7.12/bin:$PATH $ export LD_LIBRARY_PATH=$QTDIR/lib:$HOME/local/python/2.7.12/lib:$LD_LIBRARY_PATH
これで後はソースのダウンロード&インストールです!
まずはSIP。
$ wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.18.1/sip-4.18.1.tar.gz $ tar xf sip-4.18.1.tar.gz $ cd sip-4.18.1 $ python configure.py $ make $ make install
お次はPyQt4。
$ wget http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.4/PyQt-x11-gpl-4.11.4.tar.gz $ tar xf PyQt-x11-gpl-4.11.4.tar.gz $ cd PyQt-x11-gpl-4.11.4 $ python configure.py # Need to accept the license (GPL) $ make
またエラー。
/home/takumi/app_compile/PyQt-x11-gpl-4.11.4/sip/phonon/abstractaudiooutput.sip:28:33: error: abstractaudiooutput.h: No such file or directory /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/sip/phonon/abstractvideooutput.sip:28:33: error: abstractvideooutput.h: No such file or directory /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/sip/phonon/audiooutput.sip:28:25: error: audiooutput.h: No such file or directory /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/sip/phonon/backendcapabilities.sip:28:33: error: backendcapabilities.h: No such file or directory /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/sip/phonon/effect.sip:28:20: error: effect.h: No such file or directory 〜〜省略〜〜 /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/phonon/sipphononcmodule.cpp:791: error: 'Phonon' has not been declared /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/phonon/sipphononcmodule.cpp:791: error: 'a1' was not declared in this scope /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/phonon/sipphononcmodule.cpp:794: error: 'a0' was not declared in this scope /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/phonon/sipphononcmodule.cpp:796: error: 'Phonon' has not been declared /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/phonon/sipphononcmodule.cpp:796: error: 'sipRes' was not declared in this scope /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/phonon/sipphononcmodule.cpp:799: error: expected type-specifier before 'Phonon' /home/takumi/app_compile/PyQt-x11-gpl-4.11.4/phonon/sipphononcmodule.cpp:799: error: expected ';' before 'Phonon'
Phononのところみたいですね。Qtのconfigureの時のgstreamerの問題に関連しているような気が。。。Phononを無効化してみよう。
$ python configure.py \ -e QtGui -e QtHelp -e QtMultimedia -e QtNetwork -e QtDeclarative \ -e QtScript -e QtScriptTools -e QtXml -e QtOpenGL -e QtSql -e QtSvg \ -e QtTest -e QtWebKit -e QtXmlPatterns -e QtDesigner -e QAxContainer \ -e QtDBus -e dbus $ make $ make install
インストール完了。configure.pyのオプションはかなり力技?「もっとエレガントに出来ないのか!」と言われてしまいそうですが。。。そもそもPhononから逃げてるような状態なので、このあたりはインストールできれば良し、ということで。
おまけ (pip)
pipもどうせ必要になるので、入れておきましょうか。https://pip.pypa.io/en/latest/installing/ にインストールに関する情報があります。
。。。。。
2.7.9以降はデフォルトでインストールされている???見つかりませんけど???
ソースからインストールすると入らないんでしょうか。とりあえず手順通り入れておきましょう。
$ wget https://bootstrap.pypa.io/get-pip.py $ python get-pip.py
今回はここまで!