ASE(Atomic Simulation Enviroement)とは
公式HP:https://wiki.fysik.dtu.dk/ase/
ASEは原子構造のモデリングや計算結果の可視化を行うPythonモジュール群です。Quantum ESPRESSOやVASPなどの第一原理計算パッケージとの連携も可能で、なんだかいろいろできそうなのでインストールしてみましょう。
#pyenvのインストール
$ brew install pyenv
いちおう場所の確認をしておく。
$ which pyenv
/usr/local/bin/pyenv
###Python3のインストール
--listオプションを付けてインストール可能なパッケージ一覧を表示します。Python3系の最新安定版は3.7.0らしいので、それをインストールしようとしたところ以下のエラーが。
$ pyenv install -list
︙
2.1.3
2.2.3
2.3.7
2.4
︙
3.7.0
︙
$ pyenv install 3.7.0
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.0.tar.xz...
-> https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
Installing Python-3.7.0...
python-build: use readline from homebrew
BUILD FAILED (OS X 10.14 using python-build 20180424)
︙
make: *** [install] Error 1
さあこのエラーはなんでしょうか。グーグルに聞いてみたら既に対処されている方がいました…↓
https://qiita.com/zreactor/items/c3fd04417e0d61af0afe
macOS SDK headerをインストールするために以下のコマンドを叩きます。
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Password:
installer: Package name is macOS_SDK_headers_for_macOS_10.14
installer: Installing at base path /
installer: The install was successful.
再び…
$ pyenv install 3.7.0
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.0.tar.xz...
-> https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
Installing Python-3.7.0...
python-build: use readline from homebrew
Installed Python-3.7.0 to /Users/your_name/.pyenv/versions/3.7.0
無事成功!
###pyenvにパスを通す
このままターミナルに"python"と打っても、macOSデフォルトのPython2.7が起動するだけなのでpyenvのパスを通してあげる必要があります。自分が使ってるシェルの設定ファイル(bashなら.bash_profile,zshなら.zprofile)に以下を記述します。「シェルってなんだよ」って人は以下のコマンドを叩いてください。
$ echo $SHELL
/usr/local/bin/zsh
こんなふうに自分の使ってるシェルがエコーで帰ってきます。シェルの設定ファイルはホームディレクトリにあることが多いので、念の為確認してみます。
$ ls -a ~/ #ホームディレクトリにある隠しファイルを表示
︙
.zprofile
︙
この.zprofileに以下のパスを追加します。
$ vi ~/.zprofile #./zprofileを編集して以下を追記
︙
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"```
$ source ~/.zprofile #.zprofileの有効化
これでpyenvが使えるようになりました。
###普段使いのPythonを指定
pyenvがいま選んでいるPythonを確認すると、以下のようにsystem(macのデフォルト:Python2.7)でした。
$ pyenv versions #インストールされているpythonの一覧を表示
* system (set by /Users/your_name/.pyenv/version)
3.6.6
3.7.0
さきほどインストールした3.7.0に指定し直します。
$ pyenv global 3.7.0 #利用するバージョンを3.7.0に指定
$ pyenv versions
system
3.6.6
* 3.7.0 (set by /Users/your_name/.pyenv/version)
$ python -V #pythonバージョンを確認
Python 3.7.0
$ pip -V #pipのバージョンを確認
pip 10.0.1 from /Users/your_name/.pyenv/versions/3.7.0/lib/python3.7/site-packages/pip (python 3.7)
$ which python #Pythonのある場所を確認。あとで必要になります。
/Users/your_name/.pyenv/shims/python
#ASEのインストール
公式のHowToInstall
https://wiki.fysik.dtu.dk/ase/install.html
ASEはPythonのパッケージ管理ソフトpipを用いてインストールします。
$ pip install ase
︙
Installing collected packages: six, cycler, pyparsing, python-dateutil, numpy, kiwisolver, matplotlib, scipy, Werkzeug, click, itsdangerous, MarkupSafe, Jinja2, flask, ase
Successfully installed Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.14.1 ase-3.16.2 click-7.0 cycler-0.10.0 flask-1.0.2 itsdangerous-1.0.0 kiwisolver-1.0.1 matplotlib-3.0.0 numpy-1.15.3 pyparsing-2.2.2 python-dateutil-2.7.3 scipy-1.1.0 six-1.11.0
このようにaseをインストールするのと同時に、numpy,matplotlib等のライブラリを自動でインストールしてくれます。便利。
###ASEのテスト実行
以下のようにASEのテストを実行します。
$ ase test
zsh: /usr/local/bin/ase: bad interpreter: /usr/local/opt/python/bin/python3.6: no such file or directory
︙
???
どうやらASEがpyenvでインストールしたpython3.7.0を見つけてくれないっぽい。
ASEは/usr/local/bin/
にあり、中身をvim
で開いてみると1行目に以下の記述があった。
$ vi /usr/local/bin/ase
##!/usr/local/opt/python/bin/python3.6
︙
つまりaseは/usr/local/opt/python/bin
下にあるpythonを探そうとしているんですが、そんなところにPythonはいないのでここをpyenv下にあるPythonに置き換えます。
##!/usr/local/opt/python/bin/python3.6 (置き換え前)
##!/Users/your_name/.pyenv/shims/python (置き換え後)
ターミナルを再起動して、aseの場所を確認すると、
$ which ase
/Users/your_name/.pyenv/shims/ase
となり、pyenvの下にaseが来ました。
$ ase test
platform Darwin-18.0.0-x86_64-i386-64bit
python-3.7.0 /Users/your_name/.pyenv/versions/3.7.0/bin/python3.7
ase-3.16.2 /Users/your_name/.pyenv/versions/3.7.0/lib/python3.7/site-packages/ase/
numpy-1.15.3 /Users/your_name/.pyenv/versions/3.7.0/lib/python3.7/site-packages/numpy/
scipy-1.1.0 /Users/your_name/.pyenv/versions/3.7.0/lib/python3.7/site-packages/scipy/
test-dir /var/folders/5r/t_95lbdj1_nbdm0wtxspsfyr0000gn/T/ase-test-pv_pilom
...........................s........................ss.............s.......s................s..................s.s.ssss.....s......ssssssssss......ss....ssssss..ss...........ss...............s............sssss..s..ssssssss.sss..sssssssssssssss
----------------------------------------------------------------------
Ran 243 tests in 185.630s
OK (skipped=68)
テストはこれで完了です。