LoginSignup
0
3

More than 5 years have passed since last update.

macにpyenv経由でpythonをインストールして第一原理計算支援ツール"ASE"を動かせるようにする

Last updated at Posted at 2018-10-23

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)

テストはこれで完了です。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3