HomebrewとAnacondaとRDKitを入れ直した話
3連休初日ですが皆さまいかがお過ごしでしょうか?私は連休続きで週5日勤務に耐えられない身体になってしまいました・・・
さて、CBIにもケモインフォ討論会にもいけなくて残念に思っていたところ、私のようなパソコン苦手な初心者にとってはとても嬉しい書籍が2冊出版されました!
坊農先生の「生命科学者のためのデータ解析実践道場」
- 作者:坊農秀雅
- 発売日: 2019/09/27
- メディア: 単行本
金子先生の「化学のためのPythonによるデータ解析・機械学習入門」
- 作者:弘昌, 金子
- 発売日: 2019/10/23
- メディア: 単行本(ソフトカバー)
買うしかない!ということで早速、amazonでポチッとしたあと、久しぶりにターミナルで 「conda install XXXX」 したらMacが異音を発生してターミナルがおかしくなりました・・・
brewもcondaも「comand not found・・・」
・・・で、泣きながらもう一回環境構築(?)したので、備忘録を残します。
やったこと・・・
- HomebrewとAnacondaをインストール
- RDKitのインストール
- Jupyter notebookからRDKitを使えるようにする
- pymolのインストール
- (おまけ)古いHomebrewとAnacondaの削除
- おしまい
私のパソコン:「MacBook Pro(2017) / macOS High Sierra バージョン 10.13.6」
HomebrewとAnacondaをインストール
こちらの記事をそのままやりました。(引用記事ですみません)*1
# Homebrewのインストール /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # Hombrew のアップデート brew update --force && brew upgrade # pyenvのインストール brew install pyenv echo 'eval "$(pyenv init -)"' >> ~/.bash_profile exec $SHELL -l
このあと「.bash_profile」をテキストエディタで開いて追加で書き込みをして以下のようにしました。
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
「export ~~~」の2行を書き込まないとうまく動かなかった・・・
ついで、Anacondaをインストール。 RDKitは「Python 2系はもうサポートしないよ!」、ということなのでPython3系で新しそうなバージョンを入れました。
# インストール可能なバージョンの確認 pyenv install -l # Python version 3系のをインストール pyenv install anaconda3-5.3.1 pyenv global anaconda3-5.3.1
インストールできました!が、バージョンが新しいAnaconda (4.4以降?)はこのままでは使えないらしく、 ターミナルで「configureをちゃんとしなさい!」みたいなエラーが出ました。
エラーメッセージにしたがって、echoを実施して「.bash_profile」を修正したら使えるようになりました。
# 現在のユーザーがcondaを使えるようにする。 # 下の行の「XXXXX」は実際にはユーザーの名前が入っています。アホすぎる名前で恥ずかしいので伏せてます。 echo ". /Users/XXXXX/.pyenv/versions/anaconda3-5.3.1/etc/profile.d/conda.sh" >> ~/.bash_profile # condaのbase (root) environmentをPATHにずっと追加するようにする echo "conda activate" >> ~/.bash_profile
ここまでやって、「.bash_profile」は以下の状態になっていました。
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" . /Users/XXXXX/.pyenv/versions/anaconda3-5.3.1/etc/profile.d/conda.sh conda activate
「/conda.sh」の行が書いてあれば「"$PYENV_ROOT/bin:」の行は不要?みたいな記述も見かけましたが とりあえず動いているのでそのままにしてます。 ・・・私みたいな初心者にはPATHとか依存とか意味不明でつらいです。
以上でHomebrewとAnacondaの準備終了です。
RDKitのインストール
RDKitのドキュメントと 「化学の新しいカタチ」さんの記事にしたがってRDKitをインストールします。*2*3
# Pythonのバージョンを確認 python --version # pythonのバージョンを指定して RDKitをインストール conda create -c rdkit -n my-rdkit-env python=3.7 rdkit # 新しく作ったconda 環境(my-rdkit-env)をアクティベート conda activate my-rdkit-env
これでRDKitもインストールおしまい。
ですが、初心者の味方 Jupyter notebook からRDKitを利用するためにはもう一手間が必要です。
Jupyter notebookからRDKitを使えるようにする
ここまでの設定のまま Jupyter notebook から RDKit を import しようとしても「ModuleNotFoundError」というエラーが出ます。
どうもこちらの記事 によると、RDKit用につくった仮想環境(my-rdkit-env)にはjupyterをまだインストールしていないので、デフォルトのbase環境(?)のjupyter が起動されていることが原因のようでした。*4
対処方法としては2通りありそうでした。
方法①: 新しい仮想環境をactivateしたあとで、jupyterをインストールする
方法②: jupyter notebook上でカーネルを切り替えられるようにパッケージをインストールする。
今回は方法①を試した後で、方法②のパッケージもインストールしてみました。
# RDKitの仮想環境がactivateされている状態でjupyterをインストール conda install jupyter
この後、jupyter notebookを起動したら無事RDKitをimportできました!
ついでにこちらの記事 を参考にカーネルを切り替えるパッケージをインストールします。*5 引用記事そのままで恐縮ですが・・・
# パッケージのインストール pip install environment_kernels #jupyterの設定ファイル作成 jupyter notebook --generate-config
上の「environment_kernels」のインストールの際に「PyHamcrestが入ってないよ!」みたいに怒られた時は「pip install PyHamcrest」を先にやってから、もう一度インストールすれば良いみたいです。
で、作成した設定ファイル「~/.jupyter/jupyter_notebook_config.py」をテキストエディタで開いて最後の行に以下を追記・・・
c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager' c.EnvironmentKernelSpecManager.conda_env_dirs=['. /Users/XXXXX/.pyenv/versions/anaconda3-5.3.1/envs/']
この後で記事に従って念のため
pip install jupyter
とやったら、「もう入ってるよ!」と言われました。・・・ですよね。
jupyter notebookを起動して確認してみます。
新しいNotebookを作る際にどの環境を使えるか選べるようになりました!試しに「Environment(conda_my-rdkit-env)」を選択して新しいnotebookをつくりrdkitをimportしてみます。
警告出てますがとりあえずこれでも無事動きました!ついでにもう一つの仮想環境「Environment(conda_anaconda3_5.3.1)」では・・・
となりました。ようやくcondaの仮想環境という考え方がちょっとだけわかった気がします。
pymolのインストール
RDKitがインストールできたので、ついでにPymolもインストールしておきます。
brew tap brewsci/bio brew install pymol
おしまい。
(おまけ)古いHomebrewとAnacondaの削除
ちなみに古い環境の削除ですが、PATH(?)がおかしくなっているのかターミナルを起動したホームディレクトリからはHomebrewのアンインストールコマンドが使えませんでした。
どうもHomebrewは「Cellar」という名前のフォルダに入っているようなので、ディレクトリを移動してからコマンドをコピペしたらアンインストールできました。*7
# それっぽい場所に行く cd /usr/local/Cellar # アンインストールコマンドをコピペ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
ここに行き着くまでに2週間かかった・・・・。
Anacondaは「anaconda-clean」というので削除するのが正当法(?)のようでしたが、 どうにもうまくいかなかったのでそれっぽいフォルダをゴミ箱に放り込んで捨てました。*8
おしまい
以上、環境構築の備忘録でした。何番煎じか分からないコピペ記事で申し訳ないですが備忘録ですのでご容赦ください。
なんとか動く感じになったので先生がたの本を読み始めたいと思います。
記載の誤り等ありましたらご教示いただければ幸いです。
っていうかRDKitの jupyter extensionとは一体?調べても分からなかった・・・
*1:https://qiita.com/aical/items/2d066801a7464a676994
*2:http://www.rdkit.org/docs/Install.html#cross-platform-under-anaconda-python-fastest-install
*3:https://future-chem.com/rdkit-intro/
*4:https://weblabo.oscasierra.net/python-anaconda-jupyter-modulenotfounderror/
*5:https://qiita.com/yuto_ohno/items/4f5b58978235c35fbe7e
*6:https://qiita.com/Ag_smith/items/58e917710c4eddab46ee
*7:https://qiita.com/uhooi/items/91d2261ab30b6f2c143a
*8:https://weblabo.oscasierra.net/python-anaconda-uninstall-macos/