pyenv内のMinicondaでEMAN2仮想環境を構築する
提供: Eospedia
クライオ電顕備忘録に属する記事です。
目次
概要
- Python環境について、Anacondaとお別れしてpyenv/pyenv-virtualenvに乗り換えることにした。
- Anaconda依存のEMAN2はpyenvとは別個にインストールしておけばよいのだが、環境を一元管理したいのでpyenv隷下にインストールすることにした。
- 実際やってみた感想としては、公式のMinicondaを用いたソースビルドよりも手間がかからず、個人的には気に入った。
- ただしEMAN2はPython3ビルドとした。
- 検証環境
- Ubuntu 18.04 (Docker, nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04)
更新履歴
- 2020/03/19 新規作成
- 2020/03/25 一番最後の「使う」の項目を修正
手順
pyenv
- pyenvは異なるPythonバージョンを個別の仮想環境として分けて管理してくれるツール。
- 公式に従いインストールする。
- pyenv-virtualenvと併用すると、同じpyenvの仮想環境をベースとして、さらに細かく仮想環境を構築できる。今回はpyenvしか使わない。
Miniconda仮想環境の構築
- MinicondaはAnacondaのミニマルインストール版で、初期インストールされているライブラリが少ないこと以外はAnacondaと同じ。
- EMAN2の公式ではMinicondaを使ったビルド手順(pyenvは使わない)が紹介されている。
① pyenv installコマンドによりminiconda3-4.6.14仮想環境をインストールする。
pyenv install miniconda3-4.6.14
- 4.6.14指定としたのは、EMAN2公式で「Download and install this specific version (4.6.14) of Miniconda」との指示があるため。他のバージョンでどうなるかは検証していない。
- miniconda3なのでPython3が入る。EMAN2はPython2→3への以降作業中で、Python3版はぼちぼち安定に近づきつつあるらしいので、今回はPython3でビルドすることにした。
② miniconda3-4.6.14仮想環境をアクティベートする。
pyenv local miniconda3-4.6.14
EMAN2依存関係のインストール
Python関係
- EMAN2公式の、"Python 3 Environment (usable, but buggy 2/14/2020)"の項を参照した。
- ただしpyenvの中のcondaでさらに仮想環境を構築したりすると面倒なことになりそうだったため、仮想環境は構築せずにそのままインストールを進めることにした。
conda install eman-deps-dev=22.1 -c cryoem -c defaults -c conda-forge
- condaのアクティベートなどの操作は特に必要なかった。
それ以外
- CMake >= 3.14が必要。Ubuntu 18.04はaptだと3.10しか入らなかったので、筆者は3.16.5をソースからビルドしてインストールした。
- その上で、以下をインストールした。
sudo apt install libgl1-mesa-dev freeglut3-dev
- 筆者が中途半端にいじったUbuntu18.04のDockerコンテナでの結果なので、本来は上記より必要なものは多いハズ。
EMAN2のビルドとインストール
① どこか適当なところにEMAN2のソースをダウンロードする。筆者は $HOME/softwares/ にした。
cd $HOME/softwares git clone https://github.com/cryoem/eman2.git
- Python3版のソースはmasterブランチなのでこのままでいい。
② Makefile生成
cd eman2 mkdir build cd build cmake ..
- cmakeで足りないライブラリなど指摘されたら、適宜condaとかaptでインストールする。
③ ビルドとインストール
make -j make install
- pyenvのルートディレクトリが $HOME/.pyenv だとすると、インストール先は $HOME/.pyenv/versions/miniconda3-4.6.14/ 以下となる。
- e2display.pyなどの各種実行ファイルは $HOME/.pyenv/versions/miniconda3-4.6.14/bin に入っている。
使う
新しいターミナルを起動する。 eman2の各種実行ファイルは $HOME/.pyenv/shims/bin にコピー?されており、またそのディレクトリは$PATHに追加されている(はず)。
各種実行ファイルが使えるかテストするには、以下の様にする。
cd $HOME/softwares/eman2/build pyenv local miniconda3-4.6.14 make test
上記でエラーが出ないようならokで、pyenvをminiconda3-4.6.14に切り替えればいつでもeman2を実行可能となる。
もし何かエラーが出た場合は、
make test-verbose
を実行し、エラーの内容を確認する必要がある。