nano_exit

基礎的なことこそ、簡単な例が必要だと思うのです。

MacPortsを使ってMacBook AirにPOV-Rayをインストールしてみた

第一原理計算に必要な原子座標を作るのに便利なpython module "ASE"でPOV-Rayが使われていたので、MacPorts経由でインストールしてみた。

sudo port -install povray

ここまでで、特にエラーメッセージは出ず。
気になるメッセージとしては、pythonバージョンを以下のコマンドで変更しとくように指示するような文が最後に出て来た(若干コマンドはうろ覚えです)。

sudo port select python python2.7
sudo port select python2 python2.7

python3でなくてすみません。
とりあえず言われた通りに変更すると、numpyやらなんやらかんやらが全くimport出来なくなって焦った。
原因は、もともとはpython2.7-appleというバージョンを使っていたのに、違うバージョンにした結果、モジュールのパスが変わってしまったということでした。
どうやってpythonを入れたかもはや覚えていませんが、anacondaで突っ込む前に自分で手で入れたような気もしてきて、その名残が2.7なのだろうかとボンヤリ思っています。
とりあえず、以下のコマンドで元に戻しました。

sudo port select python python2.7-apple
sudo port select python2 python2.7-apple

この状態で、ASEのモジュールをpythonで読んでサンプルコードを動かすと、ちゃんとPOV-Rayを経由して画像が生成されます。

f:id:koideforest:20171111015504p:plain
サンプルコード:
Using the spacegroup subpackage — ASE documentation


povrayのPATHも自動で通っているので、aseを経由して出て来た*.povを引数に動かしてみても画像が生成されました。

povray *.pov

なかなかツヤツヤしていてカッコイイ図が出来るので、POV-Rayそのものをもうちょっと知りたいと思い、以下のサイトを閲覧。
POV-Ray 初心者向けチュートリアル & Tips

なるほど。自分で色々打ち込んで図を作れると。これはワクテカ
GUIが出てくるらしいので、とりあえず引数無しで起動させてみる。

povray

すると返って来たエラーは以下の通り(usernameは適宜置き換えて読んでください)。

poverty: cannot open the user configuration file /Users/username/.povray/3.7/povray.conf: No such file or directory

Problem with option setting
poverty
No input file provided

無いと怒られたファイルのPATHを辿ると、本当にそんなPATHは存在しないので、どこにpovrayの元ファイルが入っているのか"find"で全ファイル検索をかけたら、etcのディレクトリに何かいました。

/opt/local/etc/povray/3.7/

この中にはpovray.confとpovray.iniが含まれていて、中身を読むと、どうやらpovrayはetcのconfファイルとhomeにあるはずのconfファイル二つを読みに行くらしい。
povray.confに当たりをつけて "man povray" でマニュアルを読むと確かにそんなことが書いてあった(最初に読むべきでした。すみません。)。

自分でファイルを作ってconfファイルとiniファイルをそこにコピーして、もう一度起動。

Problem with option setting
poverty
No input file provided

結局、最初のエラーは重要ではなかったらしい。
MacPorts経由で入れると、GUIはついてこない様子。
というか、GUI付きのはunofficialなものしかない。
POV-Ray 3.7.0.x final for mac
なので、MacPortsで入れるとGUI無しのコマンドラインで頑張る方がインストールされるという流れになっていました。

しかし、MacBook Airの容量が割と厳しくなって来ているのでもう一個インストールするのも気が引けるし、かといってASEは問題なく動いているのにuninstallするのもなぁ、、、
とりあえずこれで様子を見てたいと思います。
GUIが無いとやっぱり無理だったら入れてみます。

ではでは