memorandums

日々のメモです。

macでpythonにはまる

昨日、IDEA*IDEAさんのエントリーで紹介されていたimpressiveを試したくなり、やり始めたのが運のつき。。。


とりあえず、impressiveをDLして動かしてみました。

python impressive.py demo.pdf

すると、python-openglpython-gameなど足りないモジュールがあるとか。python-openglのモジュールをこちらからDLしてインストールし、python-gameをこちらからDLして、インストールしようとしたら、バージョン不一致でインストーラが先に進まず。。。


少し調べてみると、leopardに最初から入っているpythonは2.5.1で古く?ダメらしい。pythonのサイトからPython 2.6.1 compressed source tarball をDLしてインストールして、再度、impressを実行すると、python-openglpython-gameなどのモジュールがないとか。そうか。。。バージョンごとにパッケージ管理しているのか。。。でも、どうやってモジュールを追加するんだろう?といまごろ気づく始末。


で、pythonのサイトをよくよく見てみると、leopard向けにMacPythonなるものがあることがわかりました。これなら何とかなるのかと思い入れてみたものの(実は大きな勘違いなのですが)、やはりモジュールがいれられず断念。


また、調べてみるとmacportsでモジュールのパッケージ管理をしてくれるらしい。こりゃいい!しかも、py26-openglやpy26-gameなど必要なライブラリが揃っています。しかも、py26-impressiveも存在していたことがわかりました(実はまだ開発中のようです)。最終的に(macportsが入っているという前提で進めます)、以下のコマンドで無事動かすことができました。デスクトップにimpressiveをDLして解凍したものとして進めます。残骸があちこちに散らばってしまいましたが。。。来週、研究室にいったらtimemachineで戻そう。

cd ~/Desktop/Impressive-0.10.2
sudo port install python26  ← インストール済みの場合は不要です。
sudo port install py26-opengl  ← インストール済みの場合は不要です。
sudo port install py26-game  ← インストール済みの場合は不要です。
sudo port install Xpdf  ← インストール済みの場合は不要です。
python2.6 impressive.py demo.pdf  ← ここでプレゼンが始まります。
sudo port install pdftk  ← これはなくても動作するようですが、インストールが推奨されているようです。


確かに、カッコいいですね。ぜひ、講義か学会で使ってみたいです。


<余談>

今回のあれこれを通して、easy_installの存在や複数バージョンの同居のさせ方(python_select)など知ることができました。pygameSDLをベースにしているようなのでゲーム開発環境として使ってみたいです。


実は、上記のコマンドでpython2.6としているのには少し理由があります。どうせなのでpythonで起動できた方がいいと思い、python_selectで切り替えてみたのですが、上記の通り、leopardpythonやmacpythonなどがあるため、python_selectの変更が有効になりません。


ネットの先人によると、/usr/bin/pythonを/usr/bin/python.ORG(←leopardpython)などに、また、/usr/local/bin/pythonを/usr/local/bin/python.ORG(←macpython)に手動で変更し、/opt/local/bin/pythonにたどり着くことができることがわかりました。実際にやってみたのですが、実は、これではGoogleAppEngine Launcherが異常終了するようになります。恐らく、他のOSX用にポーティングしたバイナリのツール群は、オリジナルのPython2.5が存在することを期待しているはずなので、GAEのように異常終了してしまうでしょう。ということで、pythonはオリジナルのままとして、macportspythonを使いたいときにはpython2.6と入力することにしました。



動かしてみて「このツールどこかで見たな」。。。と思ったら。こちらで既に1月に紹介されていたんですね。このときはスルーしたんですが。。。やはりIDEA*IDEAさんの紹介文が人を惹き付ける魅力があるんですね。素晴らしい!