Leopard → 2.5.1、
Snow Leopard → 2.5.5、2.6.1、
Lion → 2.5.5、2.6.6、2.7.1 が最初からインストールされています。
cgkitをダウンロードしインストール設定してみました。参考にしたのは下記のサイトです。
ありがとうございます。
Python cgkit 2.o on (Snow) Leopard
http://sites.google.com/site/lefranckcom/home/pythoncgkit2oonsnowleopard
■http://www.macports.org/install.phpからMacPorts-2.0.3.pkgをダウンロード
し、インストールします。
■ターミナルを開き、
$ sudo port install python26 scons boost +python26
と入力します。管理者パスワードを入れるとダウンロードがはじまります。
boost_python libraryなどコンパイルされインストールがはじまります。とても長く、しばらく時間がかかります。python27もインストールされました。
cgkitを使うためには、新たにインストールしたpython2.6を使っていきます。サポートライブラリをコンパイルするためです。以下PATHの設定を書き換えます。
$ cd ~
でホームディレクトリに行き、ls -aで.bash_profileがあるか確認します。
$ nano .bash_profile
でnanoエディタを開き
#PATH="/Library/Frameworks/Python.framework/Versions/Current/bin:${PATH}"
PATH=/opt/local/bin/python2.6:$PATH
export PATH
これをなるべく上の行に書き加えます。保存して終了します。
PATHを反映させるために
$ source .bash_profile
$ echo $PATH
で書き加えたPATHが入っているか確認します。
$ python2.6
と打つとビルドした日付が出ます。
$ which python2.6
/opt/local/bin/python2.6
■Compiling the support library
cgkitを入手します。
http://sourceforge.net/projects/cgkit/files/cgkit/
cgkit-2.0.0alpha9.tar.gzをダウンロードします。
cgkit-2.0.0alpha9-py2.5-macosx10.4.dmgは使えません。
cgkit-2.0.0alpha9.tar.gzを解凍します。
$ cd cgkit-2.0.0alpha9/
$ cd supportlib/
$ cd src/
$ nano polyhedrongeom.cpp
line 401行目,
typedef GLvoid (CALLBACK *TessCallback)(...);
以下のように書き換えて保存します。
typedef GLvoid (CALLBACK *TessCallback)();
$ cd ..
一つ上に上がり、
$ nano SConstruct
SConstruct を開きline 38行目:
env.Append(CCFLAGS = ["-arch", "i386", "-arch", "ppc"])
を
env.Append(CCFLAGS = ["-arch", "x86_64"])
に書き換えます。64ビットでコンパイルできるようにします。
$ scons
と入力するとサポートライブラリのコンパイルがはじまります。
$ cd ..
一つ上に上がり、
$ cp config_template.cfg config.cfg
コピーをつくります。
config.cfgを開き
46行目:
BOOST_LIB = "boost_python"
のコメント#を消します。
118, 119行目を次のようにします。
INC_DIRS += ["/opt/local/include"]
LIB_DIRS += ["/opt/local/lib"]
以上を変更保存します。次にビルドします。
$ python2.6 setup.py build
続いて
$ sudo python2.6 setup.py install
以上でcgkitできあがりです。
チェックしてみましょう。
$ cd utilities/
$ python2.6 checkenv.py
-------------------------------------------------------------------
Python 2.6.7 (r267:88850, Jan 13 2012, 17:06:12)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
Platform: darwin
-------------------------------------------------------------------
Python version: 2.6........... OK
PyProtocols................... is installed
PyOpenGL...................... is installed
PIL........................... is installed
pygame........................ is installed
PyODE......................... is installed
PySerial...................... is installed
cgkit (base).................. 2.0.0alpha9 (Jan 24 2012, 00:13)
cgkit (C++ lib)............... OK
cgkit (all)................... OK
cgkitでOKが出ていれば成功です。
ところで、上記のPyProtocols...PyOpenGL...PIL..pygame...PyODE..PySerial..はmissingになっていると思います。まだ完全にcgkitは動いてくれません。後ほどMacPortsを使ってPyProtocols以外は、インストールすることができます。
続いて複数のpythonが入っているように設定を変えます。
現在切り替えられるpythonを確認するために
$ port select --list python
とすると、
Available versions for python:
none
python25-apple
python26
python26-apple
python27
複数のpythonがでてきます。現在activeなのはありません。バージョンを切り替えるには、
$ sudo port select --set python python26
で切り替わります。
Available versions for python:
none
python25-apple
python26 (active)
python26-apple
python27
PILはいくつかのライブラリに依存しています。Python Imaging Libraryインストール
$ port search py26-pil
$ port deps py26-pil
$ sudo port install py26-pil
PyOpenGLインストール
$ port deps py26-opengl
$ sudo port install py26-opengl
PyODEインストール
$ port search py26-ode
$ port deps py26-ode
$ sudo port install py26-ode
pygameインストール
$ port search py26-game
$ port deps py26-game
$ sudo port install py26-game
PySerialインストール
$ port search py26-serial
$ port deps py26-serial
$ sudo port install py26-serial
PyProtocolsインストール
PyProtocols-0.9.3をダウンロード
http://peak.telecommunity.com/
PyProtocols-0.9.3フォルダに移動し、
$ python2.6 setup.py --without-speedups install
RenderManレンダラ
3delight-10.0.4-Darwin-Universal.pkgをインストールし、
cgkitサイトのチュートリアルから
demo1.py
demo2.py
demo3.py
を保存します。
サンプルファイルがある場所で
$ viewer.py demo1.py
で動作するか確かめます。
さらに
$ render.py -r3delight demo1.py
Exporting main.rib...
1 passes...
Compiling shaders...
Preprocessing time: 0s
Rendering "out.tif" (frame 0)...
3DL ERROR: Two different displays can't write to the same file (will keep 'file' and ignore 'framebuffer')
Rendering time: 0s
$ $ i-display out.tif
- -
- -