Mac OS X で PyQt4 の開発環境を整える

Mac OS X で Python 2/3 + Qt4 + PyQt4 の開発環境を整備する方法をまとめます. 今回この方法で導入テストを行なった環境は以下の通りです.

  • OS X 10.10
  • Homebrew
  • Python 2.7.8 / 3.4.2
  • Qt 4.8.6
  • PyQt 4.11.1

Homebrew の導入

これについては多くの方が既に導入されていると思いますので省略します. 詳しくは Homebrew の公式サイトを参照してください

Python の導入

Homebrew から最新安定版の Python をインストールします.

Python 2 を利用したい場合は

brew install python

Python 3 を利用したい場合は

brew install python3

を実行します.

Qt + PyQt の導入

Homebrew で PyQt 4 をインストールします. 依存関係により自動的に Qt 等もインストールされます.

Python 2 のみで利用したい場合は,

brew install pyqt

Python 3 で利用したい場合は,

brew install pyqt --without-python

Python 2 と 3 の両方で利用したい場合は,

brew install pyqt --with-python3

を実行します.

テスト

PyQt4 モジュールを使えるようになったかチェックします.

$ python
Python 2.7.8 (default, Oct 18 2014, 14:57:17) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt4        
>>> PyQt4
<module 'PyQt4' from '/usr/local/lib/python2.7/site-packages/PyQt4/__init__.py'>
$ python3
Python 3.4.2 (default, Oct 19 2014, 22:27:04) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyQt4
>>> PyQt4
<module 'PyQt4' from '/usr/local/lib/python3.4/site-packages/PyQt4/__init__.py'>

virtualenv から PyQt を利用する

アプリケーションの開発等で virtualenv を利用したい場合は, 通常通り仮想環境を作成し, PyQt 関係のモジュールのみ別途シンボリックリンクを作成して利用することができます.

~/venv に作成した仮想環境で OpenCV のモジュールを利用出来るようにするには, 以下のようなコマンドを実行してシンボリックリンクを作成します.

Python 2 の場合

cd ~/venv/lib/python2.7/site-packages
ln -s /usr/local/lib/python2.7/site-packages/sip.so ./
ln -s /usr/local/lib/python2.7/site-packages/sipconfig.py ./
ln -s /usr/local/lib/python2.7/site-packages/sipdistutils.py ./
ln -s /usr/local/lib/python2.7/site-packages/PyQt4 ./

Python 3 の場合

cd ~/venv/lib/python3.4/site-packages
ln -s /usr/local/lib/python3.4/site-packages/sip.so ./
ln -s /usr/local/lib/python3.4/site-packages/sipconfig.py ./
ln -s /usr/local/lib/python3.4/site-packages/sipdistutils.py ./
ln -s /usr/local/lib/python3.4/site-packages/PyQt4 ./